如果需要将UIView的四个角全部设置为圆角,做法相当简单,只需要设置其layer的cornerRadius属性即可。而若要指定某几个角(小于4)为圆角,而别的角不变的时候,这种方法就不好用了。这种情况,最简单优雅的方案,就是使用UIBezierPath。示例代码如下:

    UIView * view = [[UIView alloc] initWithFrame:CGRectMake(, , , )];
view.backgroundColor = [UIColor grayColor];
[self.view addSubview:view]; UIBezierPath * maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(, )];
CAShapeLayer * maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = view.bounds;
maskLayer.path = maskPath.CGPath;
view.layer.mask = maskLayer;
  [maskLayer release];

代码中,byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight指定了成为圆角的角。该参数是UIRectCorner类型,可选值有:

* UIRectCornerTopLeft
* UIRectCornerTopRight
* UIRectCornerBottomLeft
* UIRectCornerBottomRight
* UIRectCornerAllCorners

注意,项目中需要加入QuartzCore.framework框架,导入<QuartzCore/QuartzCore.h>头文件

05-19 20:37