我有一个像这样的视图层次结构:
-First View Controller
-View
-ScrollView
-TBD
-ImageView
我正在尝试使用以下(来自apple docs)来设置ScrollView的内容大小:
UIScrollView *tempScrollView=(UIScrollView *)self.view;
tempScrollView.contentSize=CGSizeMake(320,1000);
但我收到错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException'
如何修改以正确设置scrollView的contentSize?
答案 0 :(得分:1)
问题是这个
self.view获取控制器的主要UIView,你的scrollView是self.view的子视图,要访问它,你需要一个IBOutlet。
首先,在viewControllers中创建IBOutlet .h
然后在你的故事板中挂钩你的viewView,你将viewContoller放到IBoulet中。 单击scrollView - >一个正确的实用工具选项卡 - >光滑最右边的标签,它将有一个圆圈中的箭头 - >然后单击“引用插座”并将其拖到视图控制器上 - >它将为您提供选择scrollView或视图的选项。
选择scrollView。
就是这样,现在您可以将代码更改为:
self.scrollView.contentSize = CGSizeMake(320,1000);
答案 1 :(得分:0)
如果您使用自动布局,则需要设置约束,以便contentSize
内的所有子视图设置约束,而不是设置scrollView
的{{1}}。然后,您的scrollView
将根据您的约束自动确定。
阅读this post了解详情。
答案 2 :(得分:0)
您的视图控制器视图不是滚动视图,因此发生异常。
可能的补救措施
1.将视图控制器视图类的自定义类更改为UIScrollView
tnen,就像执行此操作一样
2。
将您的scrollview标记设置为1000,然后执行以下操作
UIScrollView *tempScrollView=(UIScrollView *)[self.view viewWithTag:1000];
tempScrollView.contentSize=CGSizeMake(320,1000);
1000不是强制性的,tou可以放任何整数,但是让你没有其它的观点或兄弟姐妹都有那个标记