在UIView角上创建一个蒙版

时间:2014-04-08 10:46:49

标签: ios objective-c uiview

我已经构建了一个简单的开关按钮:

enter image description here

点击" A" " C"红色中间部分是左侧或右侧的动画。

但是正如你所看到的,我的圆角背景仍然是白色的。我得到的是在视图上有一个明确的掩码?

这是我使用的代码:

- (id)init
{
    self = [super init];
    if (self) {
        self = [[[NSBundle mainBundle]loadNibNamed:@"CategortSwitch" owner:self options:nil]objectAtIndex:0];

        //Im making the backround color clear so this should not happen..

        self.backgroundColor = [UIColor clearColor];
        [self setup];
    }
    return self;
}

-(void)setup
{
    self.backRoundView.layer.borderColor = [UIColor colorWithRed:223.0/255.0 green:94.0/255.0 blue:95.0/255.0 alpha:1].CGColor;
    self.backRoundView.layer.borderWidth = 1.0;
    self.backRoundView .layer.cornerRadius = 5.0;

    //And the mask is set to YES:

    self.backRoundView .layer.masksToBounds = YES;
    self.backRoundView .layer.backgroundColor=[[UIColor clearColor] CGColor];
}

此外,当我向左侧或右侧设置红色视图的动画时,角落不会获得它所在的UIView的半径,角落保持与左侧或右侧的滑块对齐。

1 个答案:

答案 0 :(得分:1)

如果您发布的代码是从UIView派生的对象,我猜测白色角落来自UIView背景颜色。在self.layer上设置边框而不是self.backRoundView.layer。

你也可以设置self.backgroundColor = [UIColor clearColor];但是你需要将self.backRoundView.backgroundColor设置为[UIColor whiteColor]。