我正在尝试使用 UIScrollView ,但似乎有一些基本的事情我不理解。
假设我想在我的 iPhone 应用程序中使用 UIScrollView。我有一个充满按钮的视图,尺寸为 320x700。显然,这对于 320x480 的 iPhone 来说太大了。所以我知道我必须使用 UIScrollView。但是,这是我应该创建对象的顺序吗
- 创建一个 320x700 的 UIScrollView 作为“View”中的尺寸
- 将我所有的按钮等放在这个滚动视图上
- 在 viewDidLoad 中将 contentSize 设置为 320x700
- 将 UIScrollView 的委托设置为 File Owner,并将 FileOwner 的视图设置为 UIScrollView
- 将视图大小重置回 320x480。
这是正确的吗?
这有效,但对我来说没有意义。我知道视图应该是画布,我在其中添加所有 UI 元素。我希望 iPhone 应用程序的“画布”为 320x700,并且我希望能够将按钮等放在这个 320x700 画布上。但是如果我不将 UIScrollView 的大小更改回 320x480,它就不会滚动,因为我需要将 UIScrollView 的内容大小设置为大于其大小。
但是,如果我将 UIScrollView 的大小设置为 320x480,那么我在 Interface Builder 中看不到 480 到 700 之间的屏幕和按钮!所以看来我应该进行所有编辑并将所有 UI 元素添加到 UIScrollView,然后将其设置回 320x480!
还有其他更有意义的方法吗?我对这应该如何运作的理解中缺少什么?
UPDATE
我已经发帖了另一个解决方案在这里 https://stackoverflow.com/a/16889377/77567我认为这更简单更好。
ORIGINAL
这是您可能更喜欢的另一种方法:
- 将文件所有者占位符的自定义类设置为视图控制器子类。
- 创建
UIScrollView
作为笔尖中的顶级对象。将其大小设置为屏幕大小 (320x460) 或仅打开“模拟指标”下的状态栏。
- 连接滚动视图的
delegate
文件所有者的出口。
- 设置文件的所有者
view
滚动视图的出口。
- 创建一个
UIView
as another笔尖中的顶级对象。这将是您的内容视图。
- 将内容视图的大小设置为 320x700。
- 创建一个名为的强(或保留,如果不使用 ARC)出口
contentView
在您的视图控制器(文件所有者)中并将其连接到内容视图。
- 将按钮放在内容视图中。
-
在你的视图控制器中viewDidLoad
, 做这个:
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.contentView];
((UIScrollView *)self.view).contentSize = self.contentView.frame.size;
}
-
在你的视图控制器中viewDidUnload
, 做这个:
- (void)viewDidUnload {
self.contentView = nil;
[super viewDidUnload];
}
Full size https://i.stack.imgur.com/hmwXG.png
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)