我有一个矩形图像(jpg),想用它来填充 xcode 中圆角按钮的背景。
我写了以下内容:
UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];
然而,我用这种方法得到的按钮没有圆角:它是一个普通的矩形,看起来和我的原始图像完全一样。我怎样才能得到一个圆角的图像来代表我的按钮?
谢谢!
我用 UITextArea 尝试了以下解决方案,我希望这也适用于 UIButton。
首先在你的 .m 文件中导入这个 -
#import <QuartzCore/QuartzCore.h>
然后在您的 loadView
方法中添加以下行
yourButton.layer.cornerRadius = 10; // this value vary as per your desire
yourButton.clipsToBounds = YES;
你可以通过这个 RunTime Attributes 来实现
https://i.stack.imgur.com/40Nyh.png
我们可以制作自定义按钮。请看随附的屏幕截图。
请注意:
在运行时属性中更改边框颜色按照此说明
在 h 文件中创建 CALayer 的类别类 @property(nonatomic, assign) UIColor* borderIBColor;在 m 文件中:-(void)setBorderIBColor:(UIColor*)color { self.borderColor = color.CGColor; } -(UIColor*)borderIBColor { return [UIColor colorWithCGColor:self.borderColor]; }
现在开始设置边框颜色检查截图
https://i.stack.imgur.com/FD3Ew.png
谢谢
borderColor
,它就可以工作。但它总是使用黑色作为边框颜色。
@property(nonatomic, assign) UIColor* borderIBColor;
的内容(与其他名称不冲突),实现为:-(void)setBorderIBColor:(UIColor*)color{self.borderColor = color.CGColor;} -(UIColor*)borderIBColor{return [UIColorcolorWithCGColor:self.borderColor];}
将圆角半径推到极限以得到一个圆:
self.btnFoldButton.layer.cornerRadius = self.btnFoldButton.frame.height/2.0;
https://i.stack.imgur.com/yUYf0.png
如果按钮框架是正方形,则 frame.height 或 frame.width 无关紧要。否则使用两者中最大的一个。
您可能想查看我的名为 DCKit 的库。它是在最新版本的 Swift 上编写的。
您可以直接从界面生成器制作圆角按钮/文本字段:
https://i.stack.imgur.com/KuaHw.png
它还具有许多其他很酷的功能,例如带有验证的文本字段、带有边框的控件、虚线边框、圆形和细线视图等。
UIButton* closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 90, 35)];
//Customise this button as you wish then
closeBtn.layer.cornerRadius = 10;
closeBtn.layer.masksToBounds = YES;//Important
如果现有项目中没有 QuartCore 框架,则在 viewcontroller.m 中导入 #import <QuartzCore/QuartzCore.h>
UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect]];
CGRect frame = CGRectMake(x, y, width, height); // set values as per your requirement
button.layer.cornerRadius = 10;
button.clipsToBounds = YES;
首先设置按钮的宽度=100和高度=100
目标 C 解决方案
YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;
斯威夫特 4 解决方案
YourBtn1.layer.cornerRadius = YourBtn1.Frame.size.width/2
YourBtn1.layer.borderColor = UIColor.black.cgColor
YourBtn1.layer.borderWidth = 1.0
试试我的代码。在这里您可以设置 UIButton 的所有属性,例如文本颜色、背景颜色、圆角半径等。
extension UIButton {
func btnCorner() {
layer.cornerRadius = 10
clipsToBounds = true
backgroundColor = .blue
}
}
现在这样调用
yourBtnName.btnCorner()
如果你想要一个圆角只到一个角或两个角,等等......阅读这篇文章:
[ObjC] – 带圆角的 UIButton - http://goo.gl/kfzvKP
这是一个 XIB/Storyboard 子类。无需编写代码即可导入和设置边框。
对于斯威夫特:
button.layer.cornerRadius = 10.0
为 Swift 3 更新:
使用下面的代码使 UIButton 圆角:
yourButtonOutletName.layer.cornerRadius = 0.3 *
yourButtonOutletName.frame.size.height
https://i.stack.imgur.com/Pyzhw.png
对于目标 C:
submitButton.layer.cornerRadius = 5;
submitButton.clipsToBounds = YES;
对于斯威夫特:
submitButton.layer.cornerRadius = 5
submitButton.clipsToBounds = true
斯威夫特 4 更新
我也尝试了很多选项,但我仍然无法让我的 UIButton 圆角。我在 viewDidLayoutSubviews()
解决了我的问题中添加了圆角半径代码。
func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
anyButton.layer.cornerRadius = anyButton.frame.height / 2
}
我们也可以如下调整cornerRadius
func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
anyButton.layer.cornerRadius = 10 //Any suitable number as you prefer can be applied
}
对于 iOS Swift 4
button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;
您可以为视图上的按钮使用插座连接和 didSet 功能;
@IBOutlet weak var button: UIButton!{
didSet {
button.layer.cornerRadius = 5;
button.layer.masksToBounds = true;
}
}
不定期副业成功案例分享