Update UIView class in Interface Builder

2019-03-28 10:52发布

I'm building a UI in XCode interface builder. After having layed out the required view hierarchy, I realised that one of the views closer to the top of the hierarchy should be a UIScrollView and not a UIView.

Is there any way to easily change that view's type from UIView to UIScrollView without having to re-layout all the child components with their own sub-view hierarchies?

2条回答
Explosion°爆炸
2楼-- · 2019-03-28 11:45

The simplest way as I know is right click the the corresponding .xib file and select Opern As --> Source Code. Then you can find out the view you want to change. It'll looks like this.

<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0gr-sH-vvn">
.
.
.
</view>

Change it as

<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0gr-sH-vvn">
.
.
.
</scrollView>

Basically you need to change the view to scrollView and other attributes will be auto generate when you are changing them via Attribute inspector section under interface builder mood ( Right click the the.xib file and select Opern As --> Interface Builder XIB Document )

查看更多
Emotional °昔
3楼-- · 2019-03-28 11:46

Yes, click on the UIView that you want to change. After selecting it, open the Identity Inspector pane.

From the Identity Inspector, you should see a field at the top named 'Class', and the current value, in grey, should say 'UIView'.

Enter 'UIScrollView' and hit Enter.

This will update your Nib file and my your former UIView to a UIScrollView. Also, if you have already wired the view to an IBOutlet, make sure you update the IBOutlet class definition, if it is not an id.

查看更多
登录 后发表回答