iOS 圆角设置

使用CAShapeLayer和UIBezierPath设置圆角


 UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, ScreenHeight - 50, ScreenWidth, 50)];
    [self.view addSubview:bottomView];
   
    UIBezierPath *maskPath = [UIBezierPath  bezierPathWithRoundedRect:bottomView.bounds byRoundingCorners:UIRectCornerTopRight|UIRectCornerTopLeft cornerRadii:bottomView.bounds.size];
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
    //设置大小
    maskLayer.frame = bottomView.bounds;
    //设置图形样子
    maskLayer.path = maskPath.CGPath;
    bottomView.layer.mask = maskLayer;
    bottomView.clipsToBounds = YES;
   
    UIButton *scoreButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 90, 50)];
    [bottomView addSubview:scoreButton];
    scoreButton.backgroundColor = RGB(75, 185, 120);
    [scoreButton setTitle:@"200 积分" forState:UIControlStateNormal];
    scoreButton.titleLabel.font = [UIFont systemFontOfSize:14];
   
    UIButton *jiedaButton = [[UIButton alloc] initWithFrame:CGRectMake(90, 0, ScreenWidth - 90, 50)];
    [bottomView addSubview:jiedaButton];
    jiedaButton.backgroundColor = RGB(235, 175, 88);
    [jiedaButton setTitle:@"解答" forState:UIControlStateNormal];
    [jiedaButton addTarget:self action:@selector(answerDidClicked) forControlEvents:UIControlEventTouchUpInside];
    jiedaButton.titleLabel.font = [UIFont systemFontOfSize:14];


指定需要成为圆角的的角

+ (UIBezierPath *)bezierPathWithRoundedRect:(CGRect)rect

                          byRoundingCorners:(UIRectCorner)corners

                                cornerRadii:(CGSize)cornerRadii

corners参数指定了要成为圆角的角, 枚举类型如下:

typedef NS_OPTIONS(NSUInteger, UIRectCorner) {

    UIRectCornerTopLeft    =1<<0,

    UIRectCornerTopRight    =1<<1,

    UIRectCornerBottomLeft  =1<<2,

    UIRectCornerBottomRight =1<<3,

    UIRectCornerAllCorners  = ~0UL};


你可能感兴趣的:(iOS 圆角设置)