转载自:http://www.jianshu.com/p/451b7fa94e2a

第一种: 我想你一见到代码,就瞬间有吐的冲动,最常用的一种方式。。。

UIButton *button = [[UIButton alloc]init];
button.frame = CGRectMake(100, 100, 100, 40);
button.backgroundColor = [UIColor redColor];
button.layer.cornerRadius = 20.0f;
button.layer.masksToBounds = YES;[button setTitle:@"测试" forState:UIControlStateNormal];
[self.view addSubview:button];

如此简单...但是,它默认强制裁掉了四个角啊。。。那问题来了,假如需求只要求切一个角呢。。。看第二种方法

第二种: 还是在layer上做文章,不同采用的是类扩展的方法,接下来以UIButton为例,具体效果看下图:

#import "UIButton+Corner.h"@implementation UIButton (Corner)- (void)corner
{CGRect bounds = self.bounds;UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bounds byRoundingCorners:UIRectCornerBottomLeft cornerRadii:CGSizeMake(20, 20)];CAShapeLayer *maskLayer = [CAShapeLayer layer];maskLayer.frame = bounds;maskLayer.path = maskPath.CGPath;[self.layer addSublayer:maskLayer];self.layer.mask = maskLayer;
}
@end

从上不难看出代码关键所在...这里只做简单的扩展...具体根据项目需求来
再次列出官方裁边的可选项

typedef NS_OPTIONS(NSUInteger, UIRectCorner) {UIRectCornerTopLeft     = 1 << 0,UIRectCornerTopRight    = 1 << 1,UIRectCornerBottomLeft  = 1 << 2,UIRectCornerBottomRight = 1 << 3,UIRectCornerAllCorners  = ~0UL
};

 

iOS:关于UIView切角的两种实现方式相关推荐

  1. IOS单例的两种实现方式

    单例模式算是开发中比较常见的一种模式了.在iOS中,单例有两种实现方式(至少我目前只发现两种). 根据线程安全的实现来区分,一种是使用@synchronized ,另一种是使用GCD的dispatch ...

  2. iOS: JS和Native交互的两种方法,iosjsnative交互

    iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...

  3. iOS活动倒计时的两种实现方式

    代码地址如下: http://www.demodashi.com/demo/11076.html 在做些活动界面或者限时验证码时, 经常会使用一些倒计时突出展现. 现提供两种方案: 一.使用NSTim ...

  4. IOS学习之UISwitch控件两种使用方法和监听

    IOS学习之UISwitch控件两种使用方法和监听 分类: IOS开发入门2012-06-15 11:48 1363人阅读 评论(0) 收藏 举报 一.第一种创建UISwitch控件的方法,在代码中动 ...

  5. 横切关注点的两种实现方法

    横切关注点的两种实现方法 软件系统,可看作由一组关注点组成.其中,直接的业务关注点,是直切关注点.而为直切关注点提供服务的,就是横切关注点. 有两种方法可以提供横切关注点,一种是传统的OOP方法,提供 ...

  6. 【Markdown】 实现上角标和下角标的两种方法(详细讲解!!!)

    作者:MiTu_-_ 本帖内容著作权归作者所有,转载请务必保留本文链接 Markdown实现上下角标的两种方法 第一种 使用Markdown自带的代码格式: 下标: ~ (内容) ~ 例:H2O H~ ...

  7. G-sensor的两种使用方式

    在系统中G-sensor的两种使用方式 <1> 中断方式:在此方式中首先会对G-sensor器件设定一个阈(yu)值,器件感知加速度当值大于设定的阈值时器件触发CPU中断,系统得到一次甩动 ...

  8. 开灯关灯问题的两种解决方式(数学建模线性代数的应用和编程实现)

    开灯关灯问题的两种解决方式 1.问题介绍 2.编程实现算法及其代码(详细) 3.就该题进行数学建模–体验线性代数的使用 1.问题介绍 有一个按钮组成的矩阵,其中每行有5个按钮,共5行.每个按钮旁边有一 ...

  9. 前端与后端,顶象设备指纹的两种接入方式

    在如今的移动互联网时代,用户上网的设备多元化.连接互联网的渠道多样化.接入服务的地点任意化,用户的操作行为个性化,用户设备更加难以被识别和跟踪,由此给广大开展数字化业务的企业,尤其互联网企业带来全新的 ...

  10. C++中的两种绑定方式(静态绑定、动态绑定)

    两种绑定方式 静态绑定:在编译时刻,根据指针或引用变量的静态类型来决定成员函数属于哪一个类. 动态绑定:在运行时刻,根据指针或引用变量实际指向或引用的对象类型(动态类型)来确定成员函数属于哪一个类. ...

最新文章

  1. docker 安装oracle_阿里云使用Docker搭建Hadoop集群
  2. Android之ArrayAdapter使用
  3. 关于BDD100k数据输入处理mask变为56*56
  4. Oracle 11g DG主库节点2 ORA-00245: control file backup fail
  5. spring 配置文件模板
  6. php vo 遍历,thinkPHP简单遍历数组方法分析
  7. mingW与cygwin 异同
  8. python mysql返回,python操作mysql数据-执行语句返回值直接返回字典类型
  9. 初学Docker容器网络不得不看的学习笔记
  10. 4、Linux的文件系统结构(目录树结构)
  11. Spring: Bean 注册 - BeanDefinitionRegistry
  12. 时区时钟插件html,日期、时间选择控件 - datetimepicker
  13. python3怎么运行代码_python怎么运行代码
  14. java mail eml_使用JavaMail解析EML文件
  15. matlab如何把Excel数据合并,《matlab怎么合并excel单元格并赋值?》 matlab合并 excel表格数据...
  16. 使用C++实现CE中的代码注入
  17. word中删除页眉的横线
  18. 开车总结-2021.7
  19. 弱网工具-NEWT应用
  20. 20200812 java 笔记

热门文章

  1. Jan 11 - Contains Duplicate II; Array; Traverse; HashMap; HashSet;
  2. ubuntu+nginx+php-cgi 环境开启php的curl功能
  3. SQL SERVER存储过程批量插入数据库表数据
  4. 关于阿里巴巴发布普惠体的一些思考
  5. git最简单直接粗爆与github教程
  6. windows2008 网络相关
  7. JQuery淡入淡出 banner切换特效
  8. 8个前端技术学习网站
  9. 写一个生产者消费者的例子
  10. 泛型列表(List)的搜索和排序