1

セグメントコントロールは、位置を垂直方向に再配置できません。画像のように表示されます。セグメントコントロールの配置を手伝ってくれる人はいますか。

  int offset = BAR_OFFSET + 40 * bars.count;
  for (int i = bars.count; i < guessRows; i++)
  {
   UISegmentedControl *bar = [[UISegmentedControl alloc] initWithItems:
     [NSArray arrayWithObjects:@"", @"", @"", nil]];
   bar.segmentedControlStyle = UISegmentedControlStyleBar;
   bar.transform = CGAffineTransformMakeRotation(M_PI_2);
   bar.momentary = YES;
   [bar addTarget:self action:@selector(submitGuess:)
     forControlEvents:UIControlEventValueChanged];
   CGRect frame = bar.frame;
   frame.origin.y = offset; // position it below the last bar
   frame.origin.x = 20; // give it some padding on the left
   [self.view addSubview:bar]; // add the bar to the main view
   [bars addObject:bar];
   [bar release]; 

 } 

ここに画像の説明を入力してください

4

2 に答える 2

2

プログラムでセグメント制御を作成し、フレームを設定して、セグメント制御の位置を維持し、次のようにビューコントローラにセグメント制御を追加できます:-

 UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
 segmentedControl.frame = CGRectMake(35, 200, 250, 50);
 segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain;
 segmentedControl.selectedSegmentIndex = 1;

 [self.view addSubview:segmentedControl];
于 2012-10-09T09:01:59.093 に答える
1

問題はあなたのoffset変数から来ています。行で:

frame.origin.y = offset; // position it below the last bar

その値を変更し(ビューの位置を下げるために大きくします)、コントロールを正しく表示する正しい値を見つけようとします。

于 2012-10-09T08:52:05.293 に答える