不久前,我发布了一个关于rounding just two corners of a view的问题,得到了很好的回应,但在执行上遇到了问题.下面是我的drawRect:方法:

- (void)drawRect:(CGRect)rect {
    //[super drawRect:rect]; <------Should I uncomment this?
    int radius = 5;
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextBeginPath(context);
    CGContextAddArc(context, rect.origin.x + radius, rect.origin.y + rect.size.height - radius, radius, M_PI, M_PI / 2, 1);
    CGContextAddArc(context, rect.origin.x + rect.size.width - radius, rect.origin.y + rect.size.height - radius, radius, M_PI / 2, 0.0f, 1);
    CGContextClosePath(context);
    CGContextClip(context);
}

该方法正在被调用,但似乎不会影响视图的结果.知道为什么吗?

推荐答案

iOS 11中引入了CACornerMask,这有助于定义视图层中的左上角、右上角、左下角和右下角.下面是使用的示例.

在这里,我try 只绕过两个顶角:

myView.clipsToBounds = true
myView.layer.cornerRadius = 10
myView.layer.maskedCorners = [.layerMinXMinYCorner,.layerMaxXMinYCorner]

仅供参考:

Ios相关问答推荐

PieChartView未以编程方式显示在屏幕上

SWIFT中具有可选返回类型和泛型的网络请求

如何将Safari调试器附加到Turbo-iOS原生应用中的模拟器

如何删除NavigationView中的默认透明标头?

如何为 Firebase Auth 实施 Firebase AppCheck?

尽管存在浮点错误,如何显示正确的计算结果.计算器应用程序

部分保留 UITextField 中的占位符

UIView 倒置旋转时的zoom 问题

在 SwiftUI 中重构提取到子视图的 GeometryReader 代码

在视图控制器中实例化视图控制器是否可能/智能?

包装在 AnyView 中时 UIViewControllerRepresentable 无法正常工作

SwiftUI 文本字段代理绑定代码忽略空格不起作用?

JSONDecoder 在模拟器上运行良好时无法在真实设备上解码

通过MatchedGeometryEffect向上滑动视图

在 UITextView 中垂直居中文本

无法将NSTaggedPointerString类型的值转换为NSNumber

如何隐藏uitabbar控制器

针对 Xcode 中的 iPad 选项

无法加载从带有标识符的包中的笔尖引用的图像

在转发类对象中找不到属性