Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 无法在iOS中实现简单视图滚动_Objective C_Ios_Ios5_Uiview_Uiscrollview - Fatal编程技术网

Objective c 无法在iOS中实现简单视图滚动

Objective c 无法在iOS中实现简单视图滚动,objective-c,ios,ios5,uiview,uiscrollview,Objective C,Ios,Ios5,Uiview,Uiscrollview,我很难在我的详细视图上实现一个简单的滚动 该应用程序具有主视图和详细视图,非常简单 当用户点击Master上的某个项目时,将使用较大的照片、博客文本等推送详细视图 我想滚动整个详细视图,这样如果图片很高,或者文本很长,他们可以垂直滚动以查看/阅读更多内容。我不希望用户单独滚动这些项目。它应该感觉像网页滚动 当前我的详细视图加载正常,但我无法使其滚动 MyDetailViewController.h #import <UIKit/UIKit.h> @interface

我很难在我的详细视图上实现一个简单的滚动

该应用程序具有主视图和详细视图,非常简单

当用户点击Master上的某个项目时,将使用较大的照片、博客文本等推送详细视图

我想滚动整个详细视图,这样如果图片很高,或者文本很长,他们可以垂直滚动以查看/阅读更多内容。我不希望用户单独滚动这些项目。它应该感觉像网页滚动

当前我的详细视图加载正常,但我无法使其滚动

MyDetailViewController.h

    #import <UIKit/UIKit.h>

    @interface DetailViewController : UIViewController {
        IBOutlet UILabel     *postTextLabel; // wired to Text Label
        IBOutlet UILabel     *postAuthorNameLabel; // wired to Author Label
    }

    @property (strong, nonatomic) id detailItem;
    @end
IB上的结构:


有没有关于这项工作缺少什么的想法?

我会做以下几点:

1) (可选)通过将视图拖动到侧面scruture列表中的视图中,将视图转换为滚动视图

2) 将scrollView链接到您的viewcontroller.h中,并建立如下的插座连接

@property (strong, nonatomic) IBOutlet UIScrollView *scroller;
(如果手动添加,请确保在.m中添加@synthesis) 并确保它已连接到IB

3) 在viewDidLoad方法中设置scrollview的contentsize

scroller.contentSize =  CGSizeMake(320,550);
注:IBUILabel*postTextLabel;实际上应该是UITextView,这样您就可以访问ContentSize 这将考虑以下因素

CGRect frame = postTextLabel.frame;
frame.size = postTextLabel.contentSize;
postTextLabel.frame = frame;
scroller.contentSize = CGSizeMake(320, frame.size.height+200);//200 or how ever much space is above the textView
同样,只有在使用UITextView时,这才有效

对于ipad,将320替换为768或1024,或根据方向而定

在IB中连接它的最好方法是按住控件并拖动到.h文件 并确保它设置为自动,如图所示,并指向>视图的.h。 这样添加也会自动为您添加@synthesis


确保选中此处的UserInteractionEnabled以查看我们的滚动视图,因为没有足够的信息。但是1) 在
UIScrollView
中是否将
scrollEnabled
设置为
YES
?2) 您的
UIScrollView
中的
contentSize
是否大于
frame
?3)将
.h
.m
.xib
文件放在某个地方,我们可以看一下。@RobertVojta h和m文件如上所示-没有xib文件,因为我使用的是XCode 4.5-还有其他建议吗?然后
.storyboard
如果您确实使用故事板。根据您的建议工作-我应该将第[3]项的代码放在哪里下面呢?解析器使用了
未声明的标识符'scroller',你是说'u scroller'?
我在答案中添加了这个,因为我忘了提到它放在哪里了。你忘了添加
@synthetic scroller将其添加到.m文件的@implementation下,再次确保您已连接到IB!您必须添加按住控件并将一行从scrollview拖到实现的连接。。。。我会添加一个图片,如果你有问题连接它。
CGRect frame = postTextLabel.frame;
frame.size = postTextLabel.contentSize;
postTextLabel.frame = frame;
scroller.contentSize = CGSizeMake(320, frame.size.height+200);//200 or how ever much space is above the textView