18

我创建了一个基于故事板的项目。在视图控制器的视图之一中,需要放置一些额外的元素,这会导致视图高度增加,这样视图现在必须是可滚动的。是否可以在情节提要中简单地将 UIView 的类类型更改为 UIScrollView ?它真的会将顶级 UIView 转换为 UIScrollView 吗?只是寻找一种快速简便的方法,无需太多更改。

谢谢

4

4 回答 4

14

您可以将故事板作为 xml 源代码文件打开,找到视图对象并将其替换为滚动视图。.storyboard在 Xcode 中右键单击文件并选择 Open As → Source Code。然后搜索场景的 xml 片段(例如,Cmd+F 并键入控制器名称)。顶视图对象将如下所示:

<view key="view" contentMode="scaleToFill" id="Jjm-HD-A8W">
  ...
  (suviews and constraints)
  ...
</view>

view将元素更改为scrollView(不要忘记结束标签):

<scrollView key="view" contentMode="scaleToFill" id="Jjm-HD-A8W">
  ...
  (suviews and constraints)
  ...
</scrollView>

然后.storyboard使用 Interface Builder 打开。您的视图现在变成了滚动视图。

此方法有两个优点:您不会失去任何约束,并且您可以在属性检查器中看到所有滚动视图特定的属性。

于 2018-06-14T11:07:26.127 回答
5

您必须将UIView类型更改为UIScrollView(identity inspector) 并在控制器viewDidLoad方法中contentSize通过将视图转换为 a 来分配视图 a UIScrollView

[(UIScrollView *)self.view setContentSize:CGSizeMake(320, 700)];
于 2012-05-29T22:26:33.790 回答
3

实际上有一个更好的方法来做到这一点。

  1. 在 StoryBoard 中切换打开并将UIView其中的任何内容剪切到剪贴板。
  2. 删除UIView.
  3. UIScrollView在StoryBoard 中插入一个对象。
  4. 从剪贴板粘贴到这个新对象中。

此方法将保留您为视图内的事物配置的所有委托和 IBOutlet 设置。

于 2014-07-15T22:49:27.277 回答
0

一种更简单的方法是仅使用滚动视图并将 contentsize 设置为与框架相同的大小 - 因此没有可滚动区域。例如

scrollview.contentsize = CGSizeMake(320,480);

然后当您需要放大视图时,只需根据需要进行更新。您需要确保关闭反弹功能,否则您仍然可以在滚动视图中拖动。

于 2014-03-05T04:32:51.863 回答