设置TopLeft& bottom Uftutton的半径| iOS版

时间:2016-02-17 18:50:53

标签: ios objective-c iphone swift uibutton

我想设置UIButton的上/左下角角半径。我怎样才能做到这一点?

如果我使用var $cb = $("input[type=checkbox]"); if(!$cb.attr("checked")){ $("input[type=checkbox]").removeClass("hover"); } ,它会设置所有角落。

我尝试过使用 UIBazierPath ,但可能我做错了,按钮显示不正确。我使用的代码是:

button.layer.cornerRadius

我尝试过stackoverflow的答案,即this,但这对我不起作用。它正在更新角落,但也减少了按钮的高度。我认为我在框架/边界上做错了。

使用上面的代码,UIButton显示为:

.

我使用的另一个解决方案是使用带圆角的图像。但现在我想以编程方式执行此操作。

感谢。

2 个答案:

答案 0 :(得分:2)

你的布局有变化吗?例如,如果您将代码放在viewDidLoad的{​​{1}}中并且视图通过自动布局调整大小,则可能会发生这种情况。如果您将代码移至UIViewController,那么它应该可以正常工作。

答案 1 :(得分:0)

我通过使用以下方法在目标C中实现了这一点:

-(void)setMaskTo:(UIView*)view byRoundingCorners:(UIRectCorner)corners
{
    UIBezierPath* rounded = [UIBezierPath bezierPathWithRoundedRect:view.bounds
                                              byRoundingCorners:corners
                                                   cornerRadii:CGSizeMake(8.0, 8.0)];   
    CAShapeLayer* shape = [[CAShapeLayer alloc] init];
    [shape setPath:rounded.CGPath];
    view.layer.mask = shape;
}

以这种方式调用上述方法:

[self setMaskTo:self.myButton byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerTopLeft];