有没有办法在全局范围内设置圆角的UIButtons,如下面的颜色?
[[UIButton appearance] setBackgroundColor:[UIColor purpleColor]];
答案 0 :(得分:3)
您可以使用UIAppearance设置的属性列表位于:
What properties can I set via an UIAppearance proxy?
不幸的是圆角不是可能的。
您可以使用美化(https://github.com/beautify/beautify-ios)之类的东西来增强UIKit控件,以允许您指定圆角按钮。
通过美化,以下内容将为您提供全局圆形按钮:
BYTheme *theme = [BYTheme new];
theme.buttonStyle.border = [[BYBorder alloc] initWithColor:[UIColor blackColor]
width:2.0f
radius:5.0f];
[[BYThemeManager instance] applyTheme:theme];
答案 1 :(得分:1)
我找到了这个链接。请看看它是否有帮助。
正在使用此
[[basicButton layer] setCornerRadius:18.0f];
正如我在之前的回答中提到的那样。你必须为它继承UiButton .. :))
答案 2 :(得分:0)
#import <QuartzCore/QuartzCore.h>
在头文件中添加。
然后在实施中,
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(100, 100, 100,50);
[btn setTitle:@"Hello" forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor colorWithRed:128.0/255.0f green:0.0/255.0f blue:0.0/255.0f alpha:0.7]];
btn.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);//width and height should be same value
btn.clipsToBounds = YES;
btn.layer.cornerRadius = 20;//half of the width
btn.layer.borderColor=[UIColor redColor].CGColor;
btn.layer.borderWidth=2.0f;
cornerRadius将为您解决问题。如果需要更多信息,请告诉我.. :)
修改强>
这在全球范围内无法实现。当您使用appearence
,here is the list查看可以使用UIAppearance
自定义的内容时。你可以做的是你可以创建你的UIButton的子类,&amp;在那里,您可以在setCornerRadius
方法中编写initWithCoder
的实现。
答案 3 :(得分:0)
将可行解决方案的建议迁移到Swift(也可以在UIView上使用等效的ObjC类别):
let a = UIButton.appearance()
a.layerCornerRadius = 20.0
a.layerBorderColor = UIColor.redColor().CGColor
a.layerBorderWidth = 2.0
这种黑客行为是因为如何复制属性。对appearance
和a.layer
之类的所有a.titleLabel
更改都不会传播,但扩展属性会被复制。