iOS:在故事板中将子类从UIView更改为UIScrollView

par*_*shi 17 subclass uiscrollview uiview ios

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

谢谢

pju*_*nas 8

您可以将故事板作为xml源代码文件打开,找到视图对象并将其替换为scrollview。右键单击.storyboardXcode中的文件,然后选择“另存为”?源代码。然后搜索场景的xml代码段(例如Cmd + F并键入控制器名称)。顶视图对象将如下所示:

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

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

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

然后.storyboard使用“界面生成器” 打开。您的视图现在变为滚动视图。

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


luc*_*uca 5

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

[(UIScrollView *)self.view setContentSize:CGSizeMake(320, 700)];
Run Code Online (Sandbox Code Playgroud)