iphone - UIBezierPath 不绘制圆底角

标签 iphone ios uiview rounded-corners uibezierpath

我正在尝试为我的 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/

相关文章:

ios - 如何在不使用 AudioUnit 回调的情况下播放音频

iphone - 如何从 iPhone 的图库中删除选定的照片?

iphone - 如何访问变量的值

iphone - 等待结果而不停止 UI

iphone - 在 View 后面绘制 View (作为 subview 添加)

ios - 如何自动调整 ViewController Root View 的大小以适应其内容?

iphone - 在 Storyboard中使用 UIPageViewController

ios - 关闭后从 UIWebView 释放内存/cookie/缓存

android - iOS:类似 Android 布局的相对定位

ios - 弹出窗口显示时色调颜色褪色