贝塞尔曲线切割圆角

ios 系统框架已经给我们提供了相应的切割圆角的方法, 但是如果在一个见面有很多控件切割的话会出现卡顿和个别不切的现象

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* 创建一个Button */
   UIButton * button = [UIButton buttonWithType:(UIButtonTypeSystem)];
   [button setFrame:CGRectMake(100, 100, 100, 100)];
   [self addSubview:button];
/* 正常的圆角需求处理方法 */
  button.layer.cornerRadius = 10.0f; //弧度
  button.layer.masksToBounds = YES;
/* 贝塞尔曲线切割 */
  /**
   *
   * @param UIRectCorner
   * 左上 UIRectCornerTopLeft   = 1 << 0,
    左下 UIRectCornerBottomLeft = 1 << 2,
    右下 UIRectCornerBottomRight = 1 << 3,
    所有角 UIRectCornerAllCorners = ~0UL
   *
   */
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:button.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomLeft cornerRadii:button.bounds.size];
  CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
  //设置大小
  maskLayer.frame = button.bounds;
  //设置图形样子
  maskLayer.path = maskPath.CGPath;
  button.layer.mask = maskLayer;

注意: 如果这里选择两个角 的话如果是选两个对角线 则会切 所有角

比如:UIRectCornerTopLeft | UIRectCornerBottomRight 他就会切割所有角

当然你也可以直接创建个圆角的button

仅供参考,链接http://www.jb51.net/article/118140.htm   感谢分享

 

但是在实际开发中  不建议这么写

18年04月为止切圆角的性能最好的方法是,用  贝塞尔曲线 和  context上下文来  画圆角。  用  button.layer.masksToBounds 和 button.layer.mask都会对性能带来很大的消耗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器人实现屠宰自动化

当 WESTFLEISCH 注册合作社考虑在 Coesfeld 肉类加工中心内自动化原有的人工屠宰设备过程时&#xff0c;首先在“剔除直肠”及“切开盆腔骨及腹部”两个流程中测试使用了两台库卡机器人。在此过程中&#xff0c;机器人主要以它工作的质量及经济效益说服了使用者。 实施措施/解…

DOM编程艺术12章

在submit.html中&#xff0c;代码简略成如下也行 <article><h1>Thanks!</h1><p>Thanks for contacting us. Well get back to you as soon as we can.</p></article> </body> </html> 说明了只是插入article的部分&#xff0c…

python数据结构《排序专题复习》

目录 常见的三种排序方法 冒泡排序 插入排序 选择排序 其他经典的排序方法 快速排序 堆排序 归并排序 希尔排序 不同排序方法的各维度对比 排序方式的稳定性&#xff1a;若两个相同的元素在排序前后的相对位置不发生改变的排序为稳定排序&#xff0c;否则不稳定排序 常…

BZOJ2844 albus就是要第一个出场

AC通道&#xff1a;http://www.lydsy.com/JudgeOnline/problem.php?id2844 这题貌似HDU上有一道差不多的题&#xff0c;不过我没做过&#xff0c;也就没管了。 首先讲一个线性基的东西&#xff0c;大概就是这样&#xff1a; 然后就是一个什么性质&#xff1a;S异或起来会出现重…

HTG Explains: Why Linux Doesn’t Need Defragmenting

If you’re a Linux user, you’ve probably heard that you don’t need to defragment your Linux file systems. You’ll also notice that Linux distributions don’t come with disk-defragmenting utilities. But why is that? To understand why Linux file systems d…

Spring AOP 实战运用

Spring AOP 实战 看了上面这么多的理论知识, 不知道大家有没有觉得枯燥哈. 不过不要急, 俗话说理论是实践的基础, 对 Spring AOP 有了基本的理论认识后, 我们来看一下下面几个具体的例子吧.下面的几个例子是我在工作中所遇见的比较常用的 Spring AOP 的使用场景, 我精简了很多有…

VC Ws2_32.lib

该库对应WS2_32.DLL&#xff0c;提供了对以下网络相关API的支持&#xff0c;若使用其中的API&#xff0c;则应该将ws2_32.lib加入工程&#xff08;否则要动态载入WS2_32.DLL&#xff09;。acceptbindcloseSOCKETconnectgetpeernamegetsocknamegetsockopthtonlhtonsioctlsocketi…

大话设计模式之策略模式

第二章&#xff1a;商场促销——策略模式 策略模式的定义:策略模式是一种定义一系列算法的方法&#xff0c;从概念上来看&#xff0c;所有这些算法完成的都是相同的工作&#xff0c;知识实现不同&#xff0c;他可以以相同的方式调用所有的算法&#xff0c;减少了各类算法类与使…

【Python学习】——语言风格(变量赋值、深浅拷贝、for循环陷阱)

目录 1、赋值 2、赋值的分类——引用赋值、值赋值 1) 不可变对象引用赋值——字符串、数值、元组等 2&#xff09;可变对象引用赋值——列表、集合、字典 3&#xff09;可变与不可变对象的引用赋值内部分析 4&#xff09;在py文件中&#xff0c;和作用域有关&#xff0c;如…

underscore.js 页面数据渲染

1.underscore.js 源码 // Underscore.js 1.8.3 // http://underscorejs.org // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license.(function() {// …

判断庄家是否出货

1. 大盘处于强势的时候 日平均线在横盘的时候&#xff0c;缓慢拉升然后急剧下跌 高位盘整的时候 2. 有利好消息发布的时候 因为庄家会利用这个对于散户来说这个买入时机来进行出货操作&#xff0c;可见庄家真是阴险狡诈转载于:https://www.cnblogs.com/dcz1001/p/6115893.html

【深度学习】——常见深度学习模型总结、anchor-free和anchor-based

目录 1、faster rcnn&#xff1a; 2、SSD&#xff1a; 3、YOLOv1: 小结&#xff1a; 拓展&#xff1a;anchor-based和anchor-free anchor 1、faster rcnn&#xff1a; FasterRcnn 算法原理讲解笔记&#xff08;非常详细&#xff09;https://blog.csdn.net/xjtdw/article…

PHP PDO函数库详解

PDO是一个“数据库访问抽象层”&#xff0c;作用是统一各种数据库的访问接口&#xff0c;与mysql和mysqli的函数库相比&#xff0c;PDO让跨数据库的使用更具有亲和力&#xff1b;与ADODB和MDB2相比&#xff0c;PDO更高效。目前而言&#xff0c;实现“数据库抽象层”任重而道远&…

数据交互相关分享

Python与web Python Web.py与AJAX交互转载于:https://juejin.im/post/5a40af3d6fb9a044ff31b1f5

springMVC 相对于 Structs 的优势

智者说&#xff0c;没有经过自己的思考和估量&#xff0c;就不能接受别人的东西。资料只能是一个参考&#xff0c;至于是否正确&#xff0c;还得自己去分辨 SpringMVC相对于Structs的几个优势&#xff1a; 1、springMVC安全性更高&#xff0c;structs2框架是类级别的拦截&#…

YOLOV1学习

YOLOV1学习&#xff08;输入的图像固定大小为448X448X3&#xff09; 参考文献 模型结构 将输入的图像归一化为大小为448x448x3的图像&#xff0c;然后将经过中间24层的卷积后得到了7x7x1024的特征图&#xff0c;然后后面连接的是两个全连接层&#xff0c;分别是4096和1470&am…

KUKA通信 CREAD问题

嗨。 我想通过串行端口1发送X&#xff0c;Y&#xff0c;Z&#xff0c;A&#xff0c;B&#xff0c;C坐标给机器人。 G1: ...... CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%F",X) P.XX CREAD(HANDLE,SR_T,MR_T,TIMEOUT,OFFSET,"%F",Y) P.YY ...... GOTO G1…

bzoj 1901: Zju2112 Dynamic Rankings

Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6245 Solved: 2593[Submit][Status][Discuss]Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n]&#xff0c;程序必须回答这样的询问&#xff1a;对于给定的i,j,k&#xff0c;在a[i],a[i1],a[i2]……a[j]中第k小的…

第 36 章 RRDTool

36.1. install $ apt-get install rrdtool原文出处&#xff1a;Netkiller 系列 手札 本文作者&#xff1a;陈景峯 转载请与作者联系&#xff0c;同时请务必标明文章原始出处和作者信息及本声明。

手机号码已经注册写到数据库中,如何利用相同手机号码再次注册?

手机号码已经注册写到数据库中&#xff0c;如何利用相同手机号码再次注册&#xff1f; 解&#xff1a;删除数据库中以前注册的手机号码就可以了啊&#xff0c;delete那条记录&#xff0c;转载于:https://www.cnblogs.com/panxuejun/p/6122499.html