20

我正在创建一些静态自定义UITableViewCells,并将UISegmentedControl拖动到其中一个自定义单元上。UISegmentedControl - 在界面生成器中更改高度

虽然分段控件允许我改变其宽度,但我不能在Interface Builder中更改它的高度(该属性在属性检查器的“大小”部分中的44上变为灰色)。

我知道UISegmentedControl可以用代码中的自定义高度进行装箱并添加到UITableViewCell中。有什么办法可以在Interface Builder中调整分段控件的高度吗?

回答

2

我不确定在IB中,但是您始终可以在您的代码中找到单元格并以编程方式调整其UISegmentedControl的高度。

39

您还可以在任何文本编辑器(如Dashcode或MacVim或TextEdit)中打开xib文件 - 这是一个XML文件。然后在那里找到你的元素,在我的情况下,它看起来像:

<object class="IBUISegmentedControl" id="270020637"> 
    [...] 
    <string key="NSFrame">{{20, 154}, {176, 44}}</string> 
    [...] 
</object> 

然后你就可以改变44到任何你想要的高度 - 你会看到在IB的变化。

这适用于不能在IB改变高度的所有元素 - UIPicker也...

+5

很不错的。现在责备苹果不让我们在IB首先修改它 – 2012-08-08 23:52:12

+0

真棒回答!苹果失败! – 2013-09-02 11:36:10

+0

#highqualityanswer这是在Xcode 5.1上为我工作的唯一解决方案谢谢! – GangstaGraham 2014-04-11 04:35:41

1

我要添加到肯德尔的答案。

如果你用故事板,而不是厦门国际银行,你将需要添加:

       <constraint firstAttribute="height" constant="10" id="9Wo-6S-8EM"/> 
           <constraint firstAttribute="width" constant="201" id="lw7-cq-3XN"/> 

ID可以是任何东西,唯一我猜。也许可以选择一些ID并修改一个字母?

这是完整的代码

<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="RMR-XS-abw" userLabel="ngentot2"> 
         <constraints> 
          <constraint firstAttribute="height" constant="10" id="9Wo-6S-8EM"/> 
          <constraint firstAttribute="width" constant="201" id="lw7-cq-3XN"/> 
         </constraints> 
         <segments> 
          <segment title="First"/> 
          <segment title="Second"/> 
         </segments> 
        </segmentedControl> 

我添加了一个编号userLabel,所以我可以很容易找到的东西。

注意:阅读故事板是非常有启发性的。 更改故事板文件非常危险。

35

当您在界面构建器中固定“高度”时,您可以间接更改它(选择段控制,然后通过菜单选择Editor -> Pin-> Height)。

这将为该控件的约束列表添加一个新的高度约束,然后您可以编辑该约束。更改直接反映在InterfaceBuilder中,如下面的屏幕截图所示。

interface builder height constraint

+1

很好:)它只适用于iOS 6 – code4j 2013-01-20 13:45:28

+4

很好的帮助。谢谢。只有iOS6,但截至2013年2月,这是iOS设备的83%。 http://www.tuaw.com/2013/02/13/chitika-all-versions-of-ios-6-now-account-for-83-1-of-ios-traf/ – 2013-05-21 22:56:29

+0

当它在导航中嵌入时酒吧,似乎我们不能改变。 – ZYiOS 2014-03-21 15:11:46

1

我们可以设置自动版式,然后设置高度,在此之后,我们可以关闭自动布局。所以它会帮助其他的iOS 6.0。

2

要做到这一点接口生成器里面,您可以选择控制,然后在添加框属性“用户自定义属性运行”

add frame attribute inside interface builder

相关问题