簡體   English   中英

如何使按鈕的角變圓

[英]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 來實現

在此處輸入圖片說明

我們可以制作自定義按鈕。請看附上的截圖。

請注意:

在運行時屬性中更改邊框顏色請遵循此說明

  1. 創建 CALayer 的類別類

  2. 在 h 文件中

    @property(nonatomic, assign) UIColor* borderIBColor;
  3. 在 m 文件中:

     -(void)setBorderIBColor:(UIColor*)color { self.borderColor = color.CGColor; } -(UIColor*)borderIBColor { return [UIColor colorWithCGColor:self.borderColor]; }

現在開始設置邊框顏色檢查屏幕截圖

更新的答案

謝謝

您可能想查看我的名為DCKit 的庫。 它是在最新版本的Swift上編寫的。

您可以直接從界面構建器制作圓角按鈕/文本字段:

DCKit:圓形按鈕

它還具有許多其他很酷的功能,例如帶驗證的文本字段、帶邊框的控件、虛線邊框、圓形和細線視圖等。

推到極限角半徑得到一個圓:

    self.btnFoldButton.layer.cornerRadius = self.btnFoldButton.frame.height/2.0;

在此處輸入圖片說明

如果按鈕框架是正方形,則frame.height 或frame.width 無關緊要。 否則使用兩者中最大的一個。

如果現有項目中沒有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

在此處輸入圖片說明

對於目標 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 
    }

另一個設置邊框(使其更像按鈕)的替代答案在這里... 如何為自定義類型 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM