1

これが私のコードです:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:items];
segmentedControl.frame = CGRectMake(0.0, 0.0, 320.0, 30.0);

その結果、segmentedControl には左右に約 10 ポイントのマージンがあります。

フレームのパラメーターを変更しようとしましたが、x 位置を変更できません。したがって、常に 10 pt のマージンが残っています。この余白を削除するには?

編集

私はそれを理解します

UIToolbar には 10pt のマージンがあります。UISegmentedControl だけを追加すると、正しく表示されます。

4

3 に答える 3

4

高さはスタイルに基づいてUISegmentedControl固定されているため、高さを変更することはできませんUISegmentedControl

プレーンおよびボーダー スタイルの高さは 43 で、バー スタイルの高さは 29 です。

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:items];
segmentedControl.frame = CGRectMake(0.0, 0.0, 320.0, 29.0);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;

のプロパティにUISegmentedControlStyleBarを設定します。segmentedControlStyleUISegmentedControl

于 2013-05-14T07:09:43.907 に答える
0

セッターメソッドを使用する

[segmentedControl setFrame:CGRectMake(x, y, width, height)];

セグメント化されたコントロールには丸みを帯びた四角形の境界線があるため、そのように表示されます。背景に色を設定すると、セグメントの正しいフレームが表示されます

于 2013-05-14T07:05:28.933 に答える
0

これを使って

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:items];  
segmentedControl.frame = CGRectMake(35, 200, 250, 50);  
segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
于 2013-05-14T07:03:31.823 に答える