ios 控件切圆_iOS中 切圆角,任意几个角(带边框,不带边框)__OC和Swift版本 韩俊强的博客...
需求:
1.日常我们在切控件圆角时会遇到想切任意圆角?
2.切过圆角带边框和不带边框的选择?
那么今天我们就用Objective-C和Swift都给它实现了:
OC代码:
UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 70)];
myLabel.text = @"Hi,小韩哥!";
myLabel.font = [UIFont systemFontOfSize:20.0];
myLabel.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:myLabel];
CGFloat radius = 21.0f;
UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:myLabel.bounds byRoundingCorners:UIRectCornerTopRight|UIRectCornerBottomRight cornerRadii:CGSizeMake(radius, radius)];
CAShapeLayer * mask = [[CAShapeLayer alloc] init];
mask.lineWidth = 5;
mask.lineCap = kCALineCapSquare;
// 带边框则两个颜色不要设置成一样即可
mask.strokeColor = [UIColor redColor].CGColor;
mask.fillColor = [UIColor yellowColor].CGColor;
mask.path = path.CGPath;
[myLabel.layer addSublayer:mask];
Swift代码:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(myLabel);
myLabel.layer.addSublayer(myLayer);
}
private lazy var myLabel:UILabel = {
let label = UILabel.init(frame: CGRect.init(x: 100, y: 100, width: 200, height: 70));
label.text = "Hi,小韩哥!";
label.textAlignment = .center;
return label;
}()
private lazy var myLayer:CAShapeLayer = {
let path = UIBezierPath.init(roundedRect: self.myLabel.bounds, byRoundingCorners: [.topRight , .bottomRight] , cornerRadii: self.myLabel.bounds.size);
let layer = CAShapeLayer.init();
layer.path = path.cgPath;
layer.lineWidth = 5;
layer.lineCap = kCALineCapSquare;
layer.strokeColor = UIColor.red.cgColor;
// 注意直接填充layer的颜色,不需要设置控件view的backgroundColor
layer.fillColor = UIColor.yellow.cgColor;
return layer;
}()
效果:
更多惊喜:手机加iOS开发者交流群:446310206
ios 控件切圆_iOS中 切圆角,任意几个角(带边框,不带边框)__OC和Swift版本 韩俊强的博客...相关推荐
- iOS中 Animation 动画大全 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博! iOS开发者交流QQ群: 446310206 1.iOS中我们能看到的控件都是UIView的子类,比如UIButt ...
- iOS开发中的零碎知识点笔记 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 1.关联 objc_setAssociatedObject关联是指把两个对象相互关联起来,使得其中的一个对象作为另外 ...
- iOS开发中 经常遇到的坑,看我就够了! 韩俊强的博客
从事iOS开发有些年月了,从最开始的磕磕绊绊,不知所措,到现在的遇到困难都能快速做出最佳方案处理,中间经历了不可或缺的痛苦.在项目开发中,本人有用印象笔记记录的习惯,所以很多重复出现的坑,很快迎刃而解 ...
- iOS中 Realm的学习与使用 韩俊强的博客
iOS开发者交流QQ群:446310206 有问题或技术交流可以咨询!欢迎加入! 这篇直接搬了一份官方文档过来看的 由于之前没用markdown搞的乱七八糟的 所以重新做了一份 后面看到官网的中文文 ...
- iOS中 为 iOS 建立 Travis CI 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang新浪微博! 你是否曾经试着为 iOS 项目搭建一台支持持续集成的服务器,从我的个人经验而言,这可不是一个轻松的活.首先需要准备一台 ...
- iOS中 本地通知/本地通知详解 韩俊强的博客
布局如下:(重点讲本地通知) iOS开发者交流QQ群: 446310206 每日更新关注:http://weibo.com/hanjunqiang 新浪微博 Notification是智能手机应用编 ...
- iOS中 语音识别功能/语音转文字教程具体解释 韩俊强的博客
前言:近期研究了一下语音识别,从百度语音识别到讯飞语音识别:首先说一下个人针对两者的看法,讯飞毫无疑问比較专业.识别率也非常高真对语音识别是比較精准的,可是非常多开发人员和我一样期望离线识别,而讯飞离 ...
- iOS中 语音识别功能/语音转文字教程详解 韩俊强的博客
原文地址:http://blog.csdn.net/qq_31810357/article/details/51111702 前言:最近研究了一下语音识别,从百度语音识别到讯飞语音识别:首先说一下个人 ...
- iOS中 UITableViewCell cell划线那些事 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 在开发中经常遇到cell分割线显示不全或者想自定义线的宽高等; 最近总结了一下,希望帮到大家: 1.不想划线怎么办? Table ...
最新文章
- 美团分布式ID生成服务LeafCode
- Xilinx Axi Dma Userspace模式下 寄存器 +MMAP 测试程序
- 开发日记-20190425 关键词 gradle基础学习 7年之约 启动篇
- Istio Pilot 源码分析(一)
- 微机个人笔记-随机存取存储器(RAM)
- pb的webserver增加的方法发布后没有显示_震惊!!!Diboot 2.0.5 发布,让开发工作又快又爽...
- ffmpeg-filter 入门
- 人民用不起的共享充电宝,可能还被植入了木马,这三类要慎用!
- shell快速迁移海量文件
- zabbix mysql 分离_编译安装zabbix3.0 并且与mysql分离
- 未来教育计算机二级2016版,20163未来教育计算机二级题库(操作题).docx
- Python os.popen() 方法
- python爬12306余票_Python 爬取12306火车票
- 腾讯bugly热更新接入
- remix os显卡linux,Remix OS 系统 PC版下载和评测 | Remix OS是什么系统_什么值得买
- springboot供应商管理系统毕业设计源码121518
- opencv 使用 GPU 加速
- HFS命令行客户端_HFClient
- 指定搜索词的分词方法——elasticsearch
- Visual Studio 2015 的安装和使用
热门文章
- 解决Django文件表单验证forms.FileField(required=True),总是无法通过验证:这个字段是必填项
- class 'memcache' not found php,PHP Fatal error: Class 'Memcache' not found in
- 六:SpringCloud-Config
- 算法47----大数
- php接收base64图片并保存
- Oracle数据库SqlLoad常用技巧总结word版
- 对动态数组的操作与算法
- 2014.11.12模拟赛【美妙的数字】| vijos1904学姐的幸运数字
- 基于Windows8与Visual Studio2012开发内核隐藏注册表
- ElasticSearch之term vector