Swift-UIButton部分圆角

为UIButton设置一侧直边一侧圆角

1、在项目中新建UIButton+Radius.swift

import UIKit
public extension UIButton{    

/** 部分圆角
 * - corners: 需要实现为圆角的角,可传入多个
 * - radii: 圆角半径
 */
func corner(byRoundingCorners corners: UIRectCorner, radii: CGFloat) {
    let maskPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radii, height: radii))
    let maskLayer = CAShapeLayer()
    maskLayer.frame = self.bounds
    maskLayer.path = maskPath.cgPath
    self.layer.mask = maskLayer
  }

}

2、调用corner方法设置圆角

smsCodeBtn.corner(byRoundingCorners: [UIRectCorner.bottomRight,UIRectCorner.topRight], radii: 5)

3、效果

image.png

4、这种方式设置圆角会离屏渲染,有可能导致性能问题。我这里view只有一个屏幕,问题不大。
5、另外一个很简单的解决圆角按钮的方法,一行代码也不需要。让UI给你切一个。😂😂😂

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,782评论 4 61
  • 转载自:https://github.com/Tim9Liu9/TimLiu-iOS[https://github...
    香橙柚子阅读 9,102评论 0 36
  • 对大多数人而言,提起法国,首先想到是巴黎的埃菲尔,普罗旺斯的薰衣草,南法的地中海,以及波尔多的红酒。对小熠而言,首...
    熠羊绒阅读 1,616评论 0 0
  • 最终的原计划+达里奥结合会议开始 第一次,讲到嗓子痛! 5位同仁! 加油
    DeathKnightR阅读 189评论 0 0

友情链接更多精彩内容