我只在iOS上工作了几个月,但是我一直在墙上撞了好几个小时,看起来应该很简单。我在Xcode中使用了主要的详细信息模板来获取iPad应用。我希望细节部分可滚动,以在任一方向上显示框架中可见内容以下的内容。我在viewWillAppear,viewDidLoad,loadView中尝试了在DetailViewController中添加scrollview的多种组合......我能想出的最好的是顶层的可滚动视图,因为它显示滚动条并向我显示我我可以正确浏览scrollView.contentSize,但是带有字段和内容的实际视图不会移动,并且无法编辑字段。这是我的viewDidAppear,因为它就在这一刻。正如您在NSLogs中看到的,我试图理解视图堆栈。如果我在日志之前取消注释该行,我会完全丢失滚动条。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
scrollView.contentSize = CGSizeMake(2048, 2048);
UIView *parentView = [[UIView alloc] init];
parentView = [[self view] superview];
[[parentView superview] addSubview:scrollView];
//[scrollView addSubview:[self view]];
NSLog(@"%@", [parentView superview]);
NSLog(@"%@", parentView);
NSLog(@"%@", [super view]);
NSLog(@"%@", [self view]);
[scrollView setDelegate:self];
}
我真诚地感谢有关如何在此方案中正确实施UIScrollView的任何指导或提示。
答案 0 :(得分:1)
您应该在IB中添加UIScrollView
。务必将所有现有视图和控件移动为滚动视图的子视图。您必须将滚动视图链接到IBOutlet
,以便在视图控制器中设置内容大小。
答案 1 :(得分:0)
不要试图在主视图的超级视图周围包装一个uiscrollview(你错误地试图取得所有权(反正它应该是NULL)),为什么不把你的UI元素放到一个完整大小的子视图中并包装scrollview那个?这会容易得多。
您的层次结构如下所示:
Self.view - > ScrollView(设置了contentSize) - >包含需要滚动的元素的UIView - >各种UI元素