0

入力サイズに基づいてサブビューを作成するメソッドを作成したため、定義されたデフォルトのコーナー CGRect 値はありません。各サブビューの左上隅に配置される却下ボタンを作成したいと考えています。現在、このメソッドを使用して追加していますが、これの問題は、CGRectMake の値を静的にできないことです。

CGRect tapToDismissFrame = CGRectMake(50.0f, 50.0f, 400.0f, 400.0f);

UIButton *tapToDismiss = [[UIButton alloc] initWithFrame:tapToDismissFrame];
tapToDismiss.backgroundColor = [UIColor clearColor];
tapToDismiss.titleLabel.font = [UIFont fontWithName:[NSString stringWithFormat:@"Helvetica-Bold"] size:20];
[tapToDismiss setTitle:@"⊗" forState:UIControlStateNormal];
[tapToDismiss setTitleColor:[UIColor colorWithRed:173.0/255.0 green:36.0/255.0  blue:36.0/255.0  alpha:1.0] forState:UIControlStateNormal];
[tapToDismiss addTarget:self action:@selector(tapToDismissClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.maskView addSubview:tapToDismiss];

左上隅または右上隅に作成するために動的な値を取得するにはどうすればよいですか。

4

1 に答える 1

0

CGGeometry関数を使用して、閉じるボタンの正しいフレームを計算する必要があります。そのボタンを作成したとします。その後、サンプル コードを次に示します。

[button sizeToFit];
CGRect maskViewBounds = self.maskView.bounds;
CGFloat top = CGRectGetMinY(maskViewBounds);
CGRect left = CGRectGetMaxX(maskViewBounds);
CGFloat buttonHeight = button.size.height;
CGFloat buttonWidth = button.size.width;
CGFloat topMargin = 5.0f;
CGFloat leftMargin = 5.0f;
CGPoint buttonCenter = CGPointMake(top + buttonHeight / 2.0 + topMargin, left - buttonWidth / 2.0 - leftMargin);
button.center = buttonCenter;

注: このコードは Xcode で記述していません。そのため、タイプエラーが発生する可能性があります。

于 2014-10-29T23:05:55.933 に答える