ios - 裁剪一个70*70px的正方形为正方形

标签 ios objective-c xcode uiimage

在我使用下面的代码制作我的 UIImage 之前:

image.layer.cornerRadius = button.frame.size.width / 2;
image.clipsToBounds = YES;

图像大小为 70*70px,我想在 CGImageContext 中执行相同操作并保存结果,而不是像上面那样设置圆角半径,因为这会显着降低 UI 速度。在 CGImageContext 中有没有办法做到这一点?谢谢

最佳答案

您可以设置一个圆角蒙版而不是圆角,这会降低性能。

swift :

let roundMaskLayer = CAShapeLayer()
roundMaskLayer.path = UIBezierPath(roundedRect: self.YOURIMAGEVIEW.bounds, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: self.YOURIMAGEVIEW.frame.size.width/2,height: self.YOURIMAGEVIEW.frame.size.height/2)).CGPath
self.YOURIMAGEVIEW.layer.mask = roundMaskLayer
self.YOURIMAGEVIEW.layer.masksToBounds = true

objective-C :

CAShapeLayer *roundMaskLayer = [[CAShapeLayer alloc] init];
roundMaskLayer.path = (__bridge CGPathRef)([UIBezierPath bezierPathWithRoundedRect:self.YOURIMAGEVIEW.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(self.YOURIMAGEVIEW.bounds.size.width/2, self.YOURIMAGEVIEW.bounds.size.height/2)]);
self.YOURIMAGEVIEW.layer.mask = roundMaskLayer;
self.YOURIMAGEVIEW.layer.masksToBounds = true;

关于ios - 裁剪一个70*70px的正方形为正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28579789/

相关文章:

objective-c - iOS核心数据: When is data recreatable?

objective-c - 如何在不引用特定类的情况下解释崩溃日志

ios - 由于自动布局,在 UILabel 中获取换行符

ios - 为什么 Interface Builder 不在身份检查器中显示 View Controller 子类?

android - 在没有应用程序的情况下测试 firebase 云消息传递

ios - 一个一个地从数组中获取元素并创建按钮

c++ - malloc:无效指针从空闲列表中出队

ios - insertRowsAtIndexPaths 不工作,崩溃索引超出范围的对象?

Xcode - 如何查看构建命令和日志?

iphone - Apple Push Notification——是否可以批量请求大量通知?