我正在创建具有自动布局启用功能的IOS应用程序。在我的 View 应用程序中,有圆角(仅顶角)。我正在使用以下功能:
- (void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
UIBezierPath *rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds
byRoundingCorners:corners
cornerRadii:CGSizeMake(5.0, 5.0)];
CAShapeLayer *shape = [[CAShapeLayer alloc] init];
[shape setPath:rounded.CGPath];
view.layer.mask = shape;
}
并在viewDidAppear中调用此函数,如下所示:
-(void)viewDidAppear:(BOOL)animated {
[self setMaskTo:contentView byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight];
}
这工作正常,但是问题是当应用程序处于横向模式时,当我从一个 View 导航到另一个 View 时,它正在像“人像” View 那样裁剪 View 。请让我知道这种方法有什么问题吗?
最佳答案
自动布局不会重新计算蒙版,因此每次更改布局时都必须设置蒙版。将setMaskTo:byRoundingCorners:从viewDidAppear:移至viewDidLayoutSubviews:
- (void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
[self setMaskTo:contentView byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight];
}
关于ios - 带有自动布局的UIView的圆角裁剪 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24041158/