我正在尝试使用 UIScrollView,似乎有一些基本的东西我只是不理解。
假设我想在我的 iPhone 应用程序中使用 UIScrollView。我有一个充满按钮的 View ,尺寸为 320x700。显然,这对于 320x480 的 iPhone 来说太大了。所以我知道我必须使用 UIScrollView。但是,这是我应该创建对象的顺序吗
- 创建一个尺寸为 320x700 的 UIScrollView 作为“ View ”中的尺寸
- 将我所有的按钮等放在这个 ScrollView 上
- 在 viewDidLoad 中将 contentSize 设置为 320x700
- 将 UIScrollView 的委托(delegate)设置为 File Owner,将 FileOwner 的 View 设置为 UIScrollView
- 将 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我认为这更简单更好。
原创
这是您可能更喜欢的另一种方法:
- 将文件所有者占位符的自定义类设置为您的 View Controller 子类。
- 将
UIScrollView
创建为您的 nib 中的顶级对象。将其大小设置为屏幕大小 (320x460),或者只打开“模拟指标”下的状态栏。 - 将 ScrollView 的
delegate
导出连接到 File's Owner。 - 将文件所有者的
View
导出设置为 ScrollView 。 - 在您的 nib 中创建一个
UIView
作为另一个 顶级对象。这将是您的内容 View 。 - 将内容 View 的大小设置为 320x700。
- 在您的 View Controller (文件所有者)中创建一个名为
contentView
的强大(或保留,如果不使用 ARC) socket ,并将其连接到内容 View 。 - 将按钮放在内容 View 中。
在您的 View Controller 的
viewDidLoad
中,执行此操作:- (void)viewDidLoad { [super viewDidLoad]; [self.view addSubview:self.contentView]; ((UIScrollView *)self.view).contentSize = self.contentView.frame.size; }
在您的 View Controller 的
viewDidUnload
中,执行此操作:- (void)viewDidUnload { self.contentView = nil; [super viewDidUnload]; }
关于iphone - 使用 Interface Builder 创建 UIScrollView 的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118796/