我正在创建uiview按钮
'Button = [UIButton buttonWithType:UIButtonTypeCustom];
颜色处于选定状态和正常状态。 关键是我想改变面具。使我的按钮具有一个半径角。
这样做我正在使用metod:
- (void)cornerMaskRadiusAtButton:(UIButton*)button leftSide:(BOOL)side
{
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = button.bounds;
UIBezierPath *roundedPath;
if(side){
roundedPath =[UIBezierPath bezierPathWithRoundedRect:maskLayer.bounds
byRoundingCorners:UIRectCornerTopLeft |
UIRectCornerBottomLeft
cornerRadii:CGSizeMake(18.f, 18.f)];
}
else{
roundedPath = [UIBezierPath bezierPathWithRoundedRect:maskLayer.bounds
byRoundingCorners:UIRectCornerTopRight |
UIRectCornerBottomRight
cornerRadii:CGSizeMake(18.f, 18.f)];
}
maskLayer.path = [roundedPath CGPath];
button.layer.mask = maskLayer;
}
但结果是这样的:
我打电话给这个方法之后:
[self cornerMaskRadiusAtButton:Button leftSide:NO];
Button.layer.borderColor = [UIColor whiteColor].CGColor;
Button.layer.borderWidth = 1.;
但边界错了。
如何修复边界线?
答案 0 :(得分:2)
你不会看到你的图层边框beacouse你用你的图层面具切断它。 这就是为什么你只看到它的片段而不是其他的片段。他们被削减了。
最好的方法是为按钮创建图形并替换bacgroundimage 例如:
icon = [UIImage imageNamed:@"name"];
[Button setBackgroundImage:icon forState:UIControlStateNormal];
U可以设置其他状态:UIControlStateSelected 其他一些形象。