【iOS 1 行代码系列】之 一行代码搞定圆角

github: show you the code

前言

相框的形状让照片显示出各种姿态。

相框是圆形的,那么看到的照片就是圆形的。

相框是心形的,那么看到的照片就是心形的。

思路

在图片上面加上一个“相框”

让图片显示出想要的形状。

使用 UIBezierPath 来画图形。

UIBezierPath 的路径是: 一个矩形 + 一个椭圆(或者其它形状)

调用代码:CGContextDrawPath(context, kCGPath);

kCGPath 有 5 个选项

效果如图:

这里写图片描述

只有 25 符合我们的条件。

经过测试,第 2 种要理想一些,后面有说明。

再来看,加上边框的情况,边框设置的是 绿色

这里写图片描述

看这效果,第 2 比第 5 要好一些,第 5 边框切得太多。

路径设置:

直接看图吧:

第 1 种:模式 kCGPathEOFill
直接使用 UIImageView 的 bounds 来画 UIBezierPath 路径,一个矩形,一个圆形

效果:遮不全

这里写图片描述

第 2 种:模式 kCGPathEOFillStroke
直接使用 UIImageView 的 bounds 来画 UIBezierPath 路径,一个矩形,一个圆形

效果: 边框突兀

这里写图片描述

第 3 种:模式 kCGPathEOFill
对 UIImageView 的 bounds 作了修改
使用了稍微大一点的 rect
CGRectInset(bounds,-0.3,-0.3)
来画 UIBezierPath 路径,画矩形
使用了稍微小一点的 rect
CGRectInset(bounds,0.3,0.3)
来画 UIBezierPath 路径,画圆形

效果:效果不错

这里写图片描述

第 4 种:模式 kCGPathEOFillStroke
对 UIImageView 的 bounds 作了修改
使用了稍微大一点的 rect
CGRectInset(bounds,-0.3,-0.3)
来画 UIBezierPath 路径,画矩形
使用了稍微小一点的 rect
CGRectInset(bounds,0.3,0.3)
来画 UIBezierPath 路径,画圆形

效果: 边框突兀

这里写图片描述

最终 ,第 3 种模式最优!

参考文章中,未处理 高亮的情况
当然,我这里也处理好了:
针对 UITableViewCell 选中的情况
只要在以下 2 个方法写一句代码就完美了:

注意:
高亮颜色要一致!!!
高亮颜色要一致!!!
高亮颜色要一致!!!

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{
    [super setHighlighted:highlighted animated:animated];

    _image1.jh_highlightedMaskView.hidden = !highlighted;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    _image1.jh_highlightedMaskView.hidden = !selected;
}

github: show you the code

参考

iOS一个简单的设置圆角不引起性能问题的分类

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪冷啊

你的鼓励是对我的认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值