20

多数の静的カスタムを作成しており、カスタム セルの 1 つにUITableViewCellsドラッグしました。UISegmentedControl

セグメント化されたコントロールでは幅を変更できますが、Interface Builder で高さを変更することはできません (プロパティ インスペクタの「サイズ」セクションでプロパティが 44 でグレー表示されます)。

UISegmentedControlコードでカスタムの高さを使用して作成し、UITableViewCell に追加できることを知っています。Interface Builder でセグメント化されたコントロールの高さを調整する方法はありますか?

4

7 に答える 7

39

xibDashcode、MacVim、TextEdit などの任意のテキスト エディターでファイルを開くこともできます。これは XML です。次に、そこにある要素を見つけます。私の場合は次のようになりました。

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

その後、44任意の高さに変更できます - IB の変更が表示されます。

これは、IBで高さを変更できないすべての要素で機能します-UIPickerまた...

于 2010-12-31T22:20:30.590 に答える
35

Interface Builderで「高さ」を固定すると、間接的に変更できます(セグメントコントロールを選択してから、メニューを選択しますEditor -> Pin-> Height)。

これにより、そのコントロールの制約のリストに新しい高さ制約が追加され、編集できるようになります。以下のスクリーンショットでわかるように、変更は InterfaceBuilder に直接反映されます。

インターフェイス ビルダーの高さの制約

于 2012-12-20T16:26:40.710 に答える
10

いいえ、コードで行う必要があります。この質問を参照してください。

于 2010-01-26T16:25:00.717 に答える
2

Interface Builder内でそれを行うには、コントロールを選択し、「ユーザー定義のランタイム属性」の下にフレーム属性を追加できます

インターフェイスビルダー内にフレーム属性を追加

于 2014-08-30T21:23:49.507 に答える
2

IB ではわかりませんが、コード内でいつでもセルを見つけて、プログラムで UISegmentedControl の高さを調整できます。

于 2010-01-26T15:57:28.737 に答える
1

自動レイアウトを設定してから高さを設定できます。その後、自動レイアウトをオフにできます。そのため、ios 6.0以外の場合に役立ちます。

于 2013-07-27T03:49:59.820 に答える
1

ケンダーの答えに追加したい。

XIB ではなくストーリーボードを使用する場合は、以下を追加する必要があります。

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

IDは、私が推測する一意のものであれば何でもかまいません。いくつかの ID を選択して、1 文字を変更しますか?

これは完全なコードです

<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 を追加します。

注: ストーリーボードを読むことは非常に啓発的です。ストーリーボード ファイルの変更は非常に危険です。

于 2012-10-12T03:24:35.227 に答える