在iOS 9 iPhone应用程序中,我有一个按钮,我想要圆角,所以它是完全圆润的。我在Storyboard中添加了一个按钮,并添加了两个约束来水平和垂直居中。这一切都有效,直到我添加几行代码以将圆角应用于按钮。这是我的故事板:http://i.imgur.com/Nd3AnEl.png然后我将以下代码行添加到我的视图控制器:
startButton.backgroundColor = UIColor.clearColor()
startButton.layer.cornerRadius = 75
startButton.layer.borderWidth = 2
startButton.layer.borderColor = UIColor.whiteColor().CGColor
当我运行这是iPhone 5s模拟器时,边框乱了,如下所示:http://i.imgur.com/m5akxO4.png 我已经尝试让按钮完全圆润几天,但没有结果。我该怎么办?
答案 0 :(得分:2)
似乎cornerRadius
大于它的高度。在视图控制器中尝试以下代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
startButton.backgroundColor = UIColor.clearColor()
startButton.layer.cornerRadius = startButton.bounds.size.height / 2
startButton.layer.borderWidth = 2
startButton.layer.borderColor = UIColor.whiteColor().CGColor
}
答案 1 :(得分:2)
如何以编程方式创建它:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let button = UIButton(type: .Custom)
button.frame = CGRectMake(160, 100, 50, 50) // (x, y, width, height)
button.backgroundColor = UIColor.redColor()
button.layer.cornerRadius = 0.5 * button.bounds.size.width
button.layer.borderWidth = 2
button.layer.borderColor = UIColor.whiteColor().CGColor
button.setTitle("Hi!", forState: .Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
view.addSubview(button)
}
func buttonAction(sender: UIButton!) {
print("hello!")
}
显然,很多这些自定义都是可选的(例如背景颜色),但只是为了向您展示您仍然可以使用按钮完成您想要的所有操作。
答案 2 :(得分:0)
首先使按钮完全成正方形,然后在角落的宽度或高度的一半处。
例如:
// 200*200 square button
startButton.frame.size = CGSize(width: 200, height: 200)
startButton.backgroundColor = UIColor.clearColor()
// make the corner rounded like circle
startButton.layer.cornerRadius = startButton.frame.size.height/2
startButton.layer.borderWidth = 2
startButton.layer.borderColor = UIColor.whiteColor().CGColor