如何围绕按钮的角落

时间:2011-02-18 23:57:45

标签: ios cocoa-touch uibutton rounded-corners

我有一个矩形图像(jpg),并希望用它来填充xcode中带圆角的按钮的背景。

我写了以下内容:

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

然而,我用这种方法得到的按钮没有圆角:它是一个看起来与原始图像完全相同的普通矩形。如何才能获得带圆角的图像来表示我的按钮?

谢谢!

15 个答案:

答案 0 :(得分:415)

我认为我遇到了你的问题,我尝试使用UITextArea的以下解决方案,我想这也适用于UIButton。

首先在你的.m文件中导入它 -

#import <QuartzCore/QuartzCore.h>

然后在loadView方法中添加以下行

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

希望这对您有用,如果是的话确实可以沟通。

答案 1 :(得分:116)

您可以通过此RunTime属性实现

enter image description here

我们可以制作自定义按钮。请看附件截图。

请注意:

在运行时属性中更改边框的颜色遵循此说明

  1. 创建CALayer的类别

  2. h文件中的
  3. @property(nonatomic, assign) UIColor* borderIBColor;
    
  4. m文件中的
  5. -(void)setBorderIBColor:(UIColor*)color {
        self.borderColor = color.CGColor;
    }
    
    -(UIColor*)borderIBColor {
        return [UIColor colorWithCGColor:self.borderColor];
    }
    
  6. 现在开始设置边框颜色检查截图

    updated answer

    谢谢

答案 2 :(得分:15)

您可能想查看名为DCKit的我的图书馆。它写在 Swift 的最新版本上。

您可以直接从“界面”构建器中创建圆角按钮/文本字段:

DCKit: rounded button

它还有许多其他很酷的功能,例如带有验证的文本字段,带边框的控件,虚线边框,圆形和发际线视图等。

答案 3 :(得分:8)

向上推动极限角半径以获得圆圈:

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

enter image description here

如果按钮框是正方形,则frame.height或frame.width无关紧要。否则使用两者中最大的一个。

答案 4 :(得分:7)

导入 QuartoCore框架(如果现有项目中没有),然后在 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;

答案 5 :(得分:5)

recept_id

答案 6 :(得分:3)

首先设置宽度= 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

答案 7 :(得分:2)

如果你只想在一个角落或两个角落等圆角...阅读这篇文章:

[ObjC] - 圆角的UIButton - http://goo.gl/kfzvKP

这是一个XIB / Storyboard子类。无需编写代码即可导入和设置边框。

答案 8 :(得分:2)

对于Swift:

button.layer.cornerRadius = 10.0

答案 9 :(得分:2)

  

为Swift 3更新:

在下面的代码中使用UIButton转角:

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height

答案 10 :(得分:1)

设置边框的替代答案(使其更像按钮)就在这里...... How to set rectangle border for custom type UIButton

答案 11 :(得分:1)

尝试我的代码。在这里,您可以设置UIButton的所有属性,例如文本颜色,背景颜色,边角半径等。

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

现在这样通话

yourBtnName.btnCorner()

答案 12 :(得分:0)

对于iOS SWift 4

button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;

答案 13 :(得分:0)

enter image description here

对于目标C

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

对于 Swift

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

答案 14 :(得分:0)

迅速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 
    }