我想设置UIButton的上/左下角角半径。我怎样才能做到这一点?
如果我使用var $cb = $("input[type=checkbox]");
if(!$cb.attr("checked")){
$("input[type=checkbox]").removeClass("hover");
}
,它会设置所有角落。
我尝试过使用 UIBazierPath ,但可能我做错了,按钮显示不正确。我使用的代码是:
button.layer.cornerRadius
我尝试过stackoverflow的答案,即this,但这对我不起作用。它正在更新角落,但也减少了按钮的高度。我认为我在框架/边界上做错了。
使用上面的代码,UIButton显示为:
我使用的另一个解决方案是使用带圆角的图像。但现在我想以编程方式执行此操作。
感谢。
答案 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];