我正在尝试为我的 View 制作圆角并解决一个奇怪的问题。
我使用以下代码为我的 View 制作圆角
bezierPath = [UIBezierPath bezierPathWithRoundedRect:btnView.bounds
byRoundingCorners:UIRectCornerAllCorners
cornerRadii:radius];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = btnView.bounds;
maskLayer.path = bezierPath.CGPath;
btnView.layer.mask = maskLayer;
问题是,它不适用于底角。如果我使用 UIRectCornerBottomLeft
什么也不会发生,如果我使用 UIRectCornerAllCorners
只有顶角是圆的。
编辑:我不使用 layer.cornerRadius,因为我只想圆底角。
如果我从我的 View 中删除 UIViewAutoresizingFlexibleHeight
autoresizing mask,结果我没有问题。但我想使用自动调整掩码。有可能吗?
我已经尝试在设置图层的蒙版之前和之后设置 autoresizingMask。运气不好!
最佳答案
我刚刚遇到了一个类似的问题,花了几个小时才解决 - 答案很简单:将我的代码从 viewDidLoad 移到 viewDidLayoutSubviews:这是自动布局完成后调用的第一个方法....所以我怀疑我确实有4 个圆角,但不知何故它们超出了屏幕的边缘。
关于iphone - UIBezierPath 不绘制圆底角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165296/