objective-c - 如何在主细节应用程序中使细节 View 可滚动

标签 objective-c ios cocoa-touch uiscrollview

我只在 iOS 上工作了几个月,但我已经用头撞墙好几个小时了,因为一些看起来应该很简单的事情。我将 Xcode 中的主细节模板用于 iPad 应用程序。我希望细节部分可以滚动,以在任一方向显示框架中可见内容下方的内容。我已经尝试了多种在 viewWillAppear、viewDidLoad、loadView 中的 DetailViewController 中添加 ScrollView 的组合......我能想到的最好的是顶层看起来像可 ScrollView ,因为它确实显示滚动条并向我展示我scrollView.contentSize 是否正确,因为我可以平移,但带有字段和内容的实际 View 不会移动,并且无法编辑字段。这是我目前的 viewDidAppear。正如您在 NSLogs 中看到的那样,我正在尝试了解 View 堆栈。如果我取消注释日志前的行,我将完全失去滚动条。

- (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 的任何指导或提示,我将不胜感激。

最佳答案

您应该在 IB 中添加 UIScrollView。请务必将所有现有 View 和控件移动为 ScrollView 的 subview 。并且您必须将 ScrollView 链接到 IBOutlet,以便您可以在 View Controller 中设置内容大小。

关于objective-c - 如何在主细节应用程序中使细节 View 可滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9493363/

相关文章:

objective-c - 为什么我不应该在 init/dealloc 中使用 Objective C 2.0 访问器?

objective-c - 如何在 iPhone 注册页面的文本字段中默认显示电话号码?

objective-c - Xcode - 让单元格在触摸事件后显示新文本,使其展开

iphone - iOS - 调用者 viewController 的引用

iphone - C 结构到 NSArray

ios - 音频队列播放结束的准确时间

iphone - 使用 iOS 5 的外观 API 自定义 UIButton 的 titleLabel

ios - xCode 不会列出 Storyboard或 info.plist 以进行本地化

ios - 无法使用 Facebook iOS SDK 进行 native 登录

ios - 如何在iOS中实现自动滑动iCarousel?