iphone - 使用 Interface Builder 创建 UIScrollView 的步骤

标签 iphone ios uiview uiscrollview

我正在尝试使用 UIScrollView,似乎有一些基本的东西我只是不理解。

假设我想在我的 iPhone 应用程序中使用 UIScrollView。我有一个充满按钮的 View ,尺寸为 320x700。显然,这对于 320x480 的 iPhone 来说太大了。所以我知道我必须使用 UIScrollView。但是,这是我应该创建对象的顺序吗

  1. 创建一个尺寸为 320x700 的 UIScrollView 作为“ View ”中的尺寸
  2. 将我所有的按钮等放在这个 ScrollView 上
  3. 在 viewDidLoad 中将 contentSize 设置为 320x700
  4. 将 UIScrollView 的委托(delegate)设置为 File Owner,将 FileOwner 的 View 设置为 UIScrollView
  5. 将 View 的大小重置为 320x480。

这样对吗?

这行得通,但对我来说没有意义。我知道 View 应该是 Canvas ,我在其中添加了所有 UI 元素。我希望 iPhone 应用程序的“ Canvas ”为 320x700,并且我希望能够将我的按钮等放在这个 320x700 的 Canvas 上。但如果我不将 UIScrollView 的大小改回 320x480,它就不会滚动,因为我需要将 UIScrollView 的内容大小设置为大于它的大小。

但是如果我将 UIScrollView 的大小设置为 320x480,那么我在 Interface Builder 中看不到屏幕和 480 到 700 之间的按钮!所以看起来我应该进行所有编辑并将所有 UI 元素添加到 UIScrollView,然后将其设置回 320x480!

还有其他更有意义的方法吗?我对这应该如何工作的理解缺少什么?

最佳答案

更新

我已经发布了another solution here我认为这更简单更好。

原创

这是您可能更喜欢的另一种方法:

  1. 将文件所有者占位符的自定义类设置为您的 View Controller 子类。
  2. UIScrollView 创建为您的 nib 中的顶级对象。将其大小设置为屏幕大小 (320x460),或者只打开“模拟指标”下的状态栏。
  3. 将 ScrollView 的 delegate 导出连接到 File's Owner。
  4. 将文件所有者的 View 导出设置为 ScrollView 。
  5. 在您的 nib 中创建一个 UIView 作为另一个 顶级对象。这将是您的内容 View 。
  6. 将内容 View 的大小设置为 320x700。
  7. 在您的 View Controller (文件所有者)中创建一个名为 contentView 的强大(或保留,如果不使用 ARC) socket ,并将其连接到内容 View 。
  8. 将按钮放在内容 View 中。
  9. 在您的 View Controller 的 viewDidLoad 中,执行此操作:

    - (void)viewDidLoad {
        [super viewDidLoad];
        [self.view addSubview:self.contentView];
        ((UIScrollView *)self.view).contentSize = self.contentView.frame.size;
    }
    
  10. 在您的 View Controller 的 viewDidUnload 中,执行此操作:

    - (void)viewDidUnload {
        self.contentView = nil;
        [super viewDidUnload];
    }
    

scrollbuttons project window
Full size

关于iphone - 使用 Interface Builder 创建 UIScrollView 的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118796/

相关文章:

iphone - 在有限的边界内拖动 View 而不超出该边界

iphone - 如何使用 CCTMXTiledMap 保存 tmx 文件

iphone - 没有 Z_METADATA 的 xCode Sqlite 数据库创建

php - AES256 从 iOS 到 PHP

ios - 程序化设备特定 iOS 约束为零

ios - 编辑期间移动到另一个 View 时 UITextView 问题

ios - 多个音频队列的同步

ios - 检查 UIView 是否有属性

ios - UIScrollView 适用于 4 英寸,不响应 3.5 英寸的任何触摸

uiview - 单点触控 : how to add UIView to DialogViewController