作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 iOS 中,我正在尝试绘制裁剪图像。我希望剪裁从一个边缘开始,弯曲到最远的相对边缘。下图以红色显示,即最终图像的边框。在这个例子中,曲线从左下角到右上角。
这是我目前编写的代码。我唯一的问题是这种方法 bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:
没有弯曲到我需要的范围。
- (UIImage *)roundCorneredImage:(UIImage *)image radius:(CGFloat)radius {
CGRect imageRect = CGRectZero;
imageRect.size = image.size;
UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, [UIScreen mainScreen].scale);
CGSize size = CGSizeMake(radius, radius);
[[UIBezierPath bezierPathWithRoundedRect:imageRect byRoundingCorners:UIRectCornerBottomRight cornerRadii:size] addClip];
[image drawInRect:imageRect];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
更新:
这是我得到的结果和更新后的代码。我需要一些进一步的帮助...
UIBezierPath* bezier = [UIBezierPath bezierPath];
[bezier moveToPoint:CGPointMake(0, 0)];
[bezier addLineToPoint:CGPointMake(0, imageRect.size.height)];
[bezier addArcWithCenter:CGPointMake(imageRect.size.width / 2, imageRect.size.height / 2)
radius:imageRect.size.height / 2
startAngle:M_PI / 2
endAngle:0
clockwise:NO];
[bezier addLineToPoint:CGPointMake(0, 0)];
[bezier addClip];
最佳答案
使用 addLineToPoint
添加直线,使用 addArcWithCenter:radius:startAngle:endAngle:clockwise:
添加曲线,这样您就可以控制曲线的形状。
关于ios - 来自远边的 UIBezierPath 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211347/
我正在使用 react-native-elements ListItem.Accordion因为我的 React Native 中的所有其他内容 SectionList使用 ListItem s(并且
我是一名优秀的程序员,十分优秀!