zoukankan      html  css  js  c++  java
  • 指定视图的某个边的圆角

    我们一般切视图的圆角的时候 

    imageview.layer.masksToBounds = YES;
    imageview.layer.cornerRadius = 30;
     
    这时候imageview的宽高是60.0f会切出圆形  但是我们常见一些视图控件 并不是都是直接切成了圆形 而是不同的边 切了不同的圆角
    这时候需要用到的一个贝塞尔曲线。 解决方式虽然有很多 但是个人认为这个是最清晰好用的。
     
    好 上代码
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerBottomLeft cornerRadii:CGSizeMake(20, 20)];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = view.bounds;
    maskLayer.path = maskPath.CGPath;
    view.layer.mask = maskLayer;
    

    创建贝塞尔曲线 然后其中一个byRoundingCorners后面的属性是 UIRectCornerBottomLeft 意思是下左的圆角  设置了角度之后 就是其他三个角为直角  这个角为20度的圆角 

    当然 这里除了下左还可以有很多属性  

    列出来:UIRectCornerTopLeft 上左

    UIRectCornerTopRight 上右

    UIRectCornerBottomLeft 下左

    UIRectCornerBottomRight 下右

    UIRectCornerAllCorners 所有的角  很清晰明了吧 

    然后 设置多个角就在这属性后面加上  |  这个符号即可  因为是枚举值

    示例:

    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight | UIRectCornerTopLeft cornerRadii:CGSizeMake(20, 20)];
    

     这样 很简单的就可以解决视图某个角切圆角了。

  • 相关阅读:
    JS跨域
    Cookie的Domain
    Mvc自定义分页控件
    SQLServer日期函数
    IIS里面网站停止了,不能启动
    JS面向对象
    我已下定决心,回郴州老家发展
    支持向量机
    无监督降维:主成分分析法
    机器学习概念--偏差方差、Pipeline及模型正则
  • 原文地址:https://www.cnblogs.com/wangxiaoqi/p/6417097.html
Copyright © 2011-2022 走看看