【发布时间】:2010-10-13 19:52:59
【问题描述】:
如何仅使用界面生成器而不使用代码来添加要在 uiscrollview 中设置的图像。我尝试简单地将图像添加到滚动视图中,但它没有用。我知道这是一个非常简单的答案,但是我没有找到任何与 IB 相关的帮助来实现这一目标
【问题讨论】:
标签: iphone interface-builder uiscrollview
如何仅使用界面生成器而不使用代码来添加要在 uiscrollview 中设置的图像。我尝试简单地将图像添加到滚动视图中,但它没有用。我知道这是一个非常简单的答案,但是我没有找到任何与 IB 相关的帮助来实现这一目标
【问题讨论】:
标签: iphone interface-builder uiscrollview
您可以在 Interface Builder 中将图像添加到滚动视图,但为了使其滚动(即使图像大于滚动视图),您需要在代码中手动设置滚动视图的 contentSize 属性,因为我我不知道在 Interface Builder 中设置此属性的任何方法。在视图控制器的 viewDidLoad 方法中,您可以添加如下内容:
scrollView.contentSize = imageView.frame.size;
只有一行代码,应该不会太麻烦。
【讨论】:
或者,正如其他人建议的那样,您可以创建UIScrollView 的自定义子类。然后重写initWithCoder:
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
if ([self.subviews count] > 0) {
UIView* subview = [self.subviews objectAtIndex:0];
self.contentSize = subview.frame.size;
self.alwaysBounceHorizontal = NO;
self.alwaysBounceVertical = YES;
self.showsHorizontalScrollIndicator = NO;
self.scrollEnabled = YES;
}
}
return self;
}
然后将 IB 中滚动视图的类设置为您的自定义子类。这意味着内容大小是自动设置的。
这只有在滚动视图中有一个子视图时才有效。 否则添加创建一个新的“容器视图”,将所有内容放入其中,然后将其作为唯一的子视图添加到滚动视图中。
【讨论】: