0

我有这样的视图层次结构:

-First View Controller
  -View
    -ScrollView
      -TBD
    -ImageView

我正在尝试使用以下内容(来自苹果文档)来设置 ScrollView 的内容大小:

UIScrollView *tempScrollView=(UIScrollView *)self.view;
tempScrollView.contentSize=CGSizeMake(320,1000);

但我得到错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException'

如何修改以正确设置滚动视图的 contentSize?

4

3 回答 3

1

所以问题是这样的

self.view 获取控制器的主 UIView,您的 scrollView 是 self.view 的子视图,要访问它,您需要一个 IBOutlet。

所以第一件事是在你的 viewControllers .h中创建 IBOutlet

为 UIScrollView 创建一个 IBOutlet

然后在您的故事板中,将您放入 viewContoller 的 scrollView 挂钩到 IBoulet。单击 scrollView -> One right Utilities tab -> slick 最右边的选项卡,它将有一个圆圈中的箭头 -> 然后单击引用插座并将其拖到您的视图控制器 -> 它会给您一个选项选择滚动视图或视图。

将 IBoulet 连接起来

选择滚动视图。

选择滚动视图

就是这样,现在您的代码只需将其更改为:

   self.scrollView.contentSize = CGSizeMake(320,1000);
于 2014-01-29T09:37:28.623 回答
0

如果您使用的是 Auto Layout,那么您需要设置约束,contentSize而不是设置. 然后您将根据您的约束自动确定。scrollViewscrollViewcontentSize

阅读这篇文章了解更多详情。

于 2014-01-28T23:47:34.143 回答
0

您的视图控制器的视图不是滚动视图,因此会发生异常。可能的补救措施 1. 将视图控制器的视图类的自定义类更改为UIScrollViewtnen 像你做的那样 2. 将滚动视图的标签设置为 1000 然后执行以下操作

UIScrollView *tempScrollView=(UIScrollView *)[self.view viewWithTag:1000];
tempScrollView.contentSize=CGSizeMake(320,1000);

1000 不是强制性的,你可以放任何整数,但要让你认为它的其他视图或兄弟姐妹没有那个标签

于 2014-01-29T04:33:15.177 回答