[英]How to round the corners of a button
我有一個矩形圖像 (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 來實現
我們可以制作自定義按鈕。請看附上的截圖。
請注意:
在運行時屬性中更改邊框顏色請遵循此說明
創建 CALayer 的類別類
在 h 文件中
@property(nonatomic, assign) UIColor* borderIBColor;
在 m 文件中:
-(void)setBorderIBColor:(UIColor*)color { self.borderColor = color.CGColor; } -(UIColor*)borderIBColor { return [UIColor colorWithCGColor:self.borderColor]; }
現在開始設置邊框顏色檢查屏幕截圖
謝謝
您可能想查看我的名為DCKit 的庫。 它是在最新版本的Swift上編寫的。
您可以直接從界面構建器制作圓角按鈕/文本字段:
它還具有許多其他很酷的功能,例如帶驗證的文本字段、帶邊框的控件、虛線邊框、圓形和細線視圖等。
如果現有項目中沒有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;
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
首先設置按鈕的 width=100 和 Height=100
目標 C 解決方案
YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;
Swift 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
我也嘗試了很多選項,但仍然無法讓我的 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
}
另一個設置邊框(使其更像按鈕)的替代答案在這里... 如何為自定義類型 UIButton 設置矩形邊框
對於 iOS 快速 4
button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;
您可以為視圖上的按鈕使用插座連接和 didSet 函數;
@IBOutlet weak var button: UIButton!{
didSet {
button.layer.cornerRadius = 5;
button.layer.masksToBounds = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.