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 回答