UISegmentedControl の場所を変更できません。私がこれを行う場合:
segControl2.frame = CGRectMake( segControl1.origin.x, segControl2.origin.y, segControl2.size.width, segControl2.size.height);
コントロールのフレームを変更すればうまくいくはずだと誰もが言いますが、実際にはそうではありません。
UISegmentedControl の場所を変更できません。私がこれを行う場合:
segControl2.frame = CGRectMake( segControl1.origin.x, segControl2.origin.y, segControl2.size.width, segControl2.size.height);
コントロールのフレームを変更すればうまくいくはずだと誰もが言いますが、実際にはそうではありません。
CGRect frame = [[UIScreen mainScreen] bounds];
UISegmentedControl *segControl = [[UISegmentedControl] initWithItems:[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", nil];
segControl.frame = CGRectMake(frame.origin.x + 50, frame.origin.y + 50, segControl.size.width, segControl.size.height);
[view addSubview:segControl];
うまくいくはずです。
サブビューとして追加した後に要素の位置を変更するには、次を使用できます。
CGRect frame = segControl2.frame;
frame.origin.x = segControl1.frame.origin.x;
// for changes to other properties, do likewise. if no changes, don't do anything
frame.origin.y = ...
segControl2.frame = frame;
これは「自動レイアウト」である可能性があり、代わりにプログラムで UISegmentedControl を作成することができます。