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

相關問題