web-dev-qa-db-ja.com

ボタンの角を丸くする方法

長方形の画像(jpg)があり、それを使用してボタンの背景をxcodeの丸い角で塗りつぶします。

私は次のように書いた:

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];

ただし、この方法で取得するボタンの角は丸くありません。代わりに、元の画像とまったく同じように見える単純な長方形です。代わりに、ボタンを表す角が丸い画像を取得するにはどうすればよいですか?

ありがとう!

171
double07

私はあなたの問題を手に入れたと思う、私はUITextAreaで次の解決策を試してみたが、これはUIButtonでもうまくいくと思う。

まず、これを.mファイルにインポートします-

#import <QuartzCore/QuartzCore.h>

そして、loadViewメソッドに次の行を追加します

    yourButton.layer.cornerRadius = 10; // this value vary as per your desire
    yourButton.clipsToBounds = YES;

これがあなたのために働くことを望み、もしそうなら通信してください。

415
devsri

このRunTime属性で達成できます

enter image description here

カスタムボタンを作成できます。添付の​​スクリーンショットをご覧ください。

ご注意ください:

ランタイム属性で、境界線の色を変更するには、この指示に従います

  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];
    }
    

ボーダーカラーチェックのスクリーンショットを設定します

updated answer

ありがとう

116
Krutarth Patel

DCKit と呼ばれる私のライブラリをチェックアウトしたいかもしれません。最新バージョンのSwiftで書かれています。

Interface Builderから角丸ボタン/テキストフィールドを直接作成できます。

DCKit: rounded button

また、検証のあるテキストフィールド、境界線のあるコントロール、破線の境界線、円とヘアラインビューなど、他の多くのクールな機能もあります。

15
Andrey Gordeev

限界まで押すコーナー半径を最大にして円を得る:

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

enter image description here

ボタンフレームが正方形の場合、frame.heightまたはframe.widthは関係ありません。それ以外の場合は、両方の最大のものを使用します。

インポートQuartCoreフレームワーク既存のプロジェクトにない場合は、#import <QuartzCore/QuartzCore.h>viewcontroller.mにインポートします

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;
7
iAnkit
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
5
Vinay Mahipal

最初にボタンの幅= 100および高さ= 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
3
iOS Lifee

丸い角を1つまたは2つの角だけにしたい場合など...この記事を読んでください:

[ObjC] –角が丸いUIButton- http://goo.gl/kfzvKP

XIB /ストーリーボードサブクラスです。コードを記述せずにボーダーをインポートして設定します。

2
elp

swift 3用に更新されました:

以下のコードを使用して、UIButtonの角を丸くします。

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height
2
Kiran jadhav

Swiftの場合:

button.layer.cornerRadius = 10.0
2
pableiros

私のコードを試してください。ここで、テキストの色、背景の色、角の半径など、UIButtonのすべてのプロパティを設定できます。

extension UIButton {
    func btnCorner() {
        layer.cornerRadius = 10
        clipsToBounds = true
        backgroundColor = .blue
    }
}

今、このように呼び出します

yourBtnName.btnCorner()
1
iOS

境界線も設定する(ボタンのようにする)別の答えはこちらです... カスタムタイプUIButtonの長方形の境界線を設定する方法

1
Andy A

enter image description here

Objective Cの場合:

submitButton.layer.cornerRadius = 5;
submitButton.clipsToBounds = YES;

Swiftの場合:

submitButton.layer.cornerRadius = 5
submitButton.clipsToBounds = true
0

IOS Swift 4の場合

button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;
0
Jayesh Nai