zoukankan      html  css  js  c++  java
  • iOS开发之指定UIView的某几个角(小于4)为圆角

     

    在iOS开发中,我们经常会遇到View设置圆角的问题,如果需要将UIView的4个角全部都为圆角,做法相当简单,只需设置其Layer的cornerRadius属性即可(项目需要使用QuartzCore框架)。而若要指定某几个角(小于4)为圆角而别的不变时,这种方法就不好用了。如图:

    Mou icon
    Mou icon

    对于后者这种情况,下面给出一种比较简单优雅的方案,就是使用UIBezierPath。

    示例代码如下:

    UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(100, 10, 80, 80)];
    testView.backgroundColor = [UIColor redColor];
    [self.view addSubview:testView];
    
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:testView.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(10, 10)];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = testView.bounds;
    maskLayer.path = maskPath.CGPath;
    testView.layer.mask = maskLayer;
    

    其中,byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
    指定了需要成为圆角的角。该参数是UIRectCorner类型的,可选的值有:

    • UIRectCornerTopLeft
    • UIRectCornerTopRight
    • UIRectCornerBottomLeft
    • UIRectCornerBottomRight
    • UIRectCornerAllCorners

    从名字很容易看出来代表的意思,使用“|”来组合就好了。

  • 相关阅读:
    TreeView使用集锦
    net 下安装、调试的常见问题与错误及解决方法 [转]
    Oracle中使用同义词
    再推荐两个blog和一首好歌
    一点感慨
    推荐一个blog和一个工具
    买书了
    第一次做饭
    ORA00911错误及解决方法
    C#3.0美文收集
  • 原文地址:https://www.cnblogs.com/CodingMann/p/5109409.html
Copyright © 2011-2022 走看看