欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ios 贝塞尔曲线切割圆角的方法

程序员文章站 2023-12-21 12:37:04
ios 系统框架已经给我们提供了相应的切割圆角的方法, 但是如果在一个见面有很多控件切割的话会出现卡顿和个别不切得现在 /* 创建一个button */...

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

/* 创建一个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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: