我是Iphone开发的新手。
我想创建一个圆形的按钮。此按钮应该看起来像一个圆圈。
这给出了圆形矩形按钮。
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(100, 100, 100, 30);
UIImage *img = [UIImage imageNamed:@"01.png"];
[button setImage:img forState:UIControlStateNormal];
[img release];
我想出了如何创建圆角矩形按钮,但我想创建一个圆形按钮。请建议。
答案 0 :(得分:87)
经过测试的代码:
·H
#import <QuartzCore/QuartzCore.h>
-(void)roundButtonDidTap:(UIButton*)tappedButton;
的.m
#define ROUND_BUTTON_WIDTH_HEIGHT YourButtonWidthToBeSetHere
-(void)roundButtonDidTap:(UIButton*)tappedButton{
NSLog(@"roundButtonDidTap Method Called");
}
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"TimoonPumba.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(roundButtonDidTap:) forControlEvents:UIControlEventTouchUpInside];
//width and height should be same value
button.frame = CGRectMake(0, 0, ROUND_BUTTON_WIDTH_HEIGHT, ROUND_BUTTON_WIDTH_HEIGHT);
//Clip/Clear the other pieces whichever outside the rounded corner
button.clipsToBounds = YES;
//half of the width
button.layer.cornerRadius = ROUND_BUTTON_WIDTH_HEIGHT/2.0f;
button.layer.borderColor=[UIColor redColor].CGColor;
button.layer.borderWidth=2.0f;
[self.view addSubview:button];
<强>结果强>
此概念中的几何
答案 1 :(得分:22)
故事板选项(应适用于Swift或ObjC) -
如果您更喜欢在故事板中工作,还有另一种选择。
其次,输入以下属性。重要信息 - 将layer.cornerRadius的值设置为宽度的一半。
然后,当您运行该应用程序时,您的按钮将是圆形的。
答案 2 :(得分:10)
试试这个,它对我有用。只有当你把它按在正方形上时,它才会使你的按钮或任何圆形视图,宽度应该等于高度。
yourButton.layer.cornerRadius = yourButton.bounds.size.width/2;
答案 3 :(得分:2)
在IOS 8上的Xcode 7.0.0中,这段代码非常适合我。 如果按钮框架的长度和高度相同。
myButton.clipsToBounds = YES;
myButton.layer.cornerRadius = myButton.layer.frame.size.width/2;
答案 4 :(得分:1)
UIButton *myButton=[UIButton buttonWithType:UIButtonTypeCustom];
myButton.frame = CGRectMake(50,50,30,30);
[myButton addTarget:self action:@selector(buttonEvent) forControlEvents:UIControlEventTouchUpInside];
[myButton setImage:[UIImage imageNamed:@"sarabjit.png"] forState:UIControlStateNormal];
[self.view addSubView:myButton];
答案 5 :(得分:1)
使用Swift就像答案一样 Vijay-Apple-Dev.blogspot :
let ROUND_BUTTON_WIDTH_HEIGHT YourButtonWidthToBeSetHere
override func viewDidLoad() {
super.viewDidLoad()
var button = UIButton.buttonWithType(.Custom) as UIButton
button.frame = CGRectMake(160, 100, ROUND_BUTTON_WIDTH_HEIGHT, ROUND_BUTTON_WIDTH_HEIGHT)
button.layer.cornerRadius = ROUND_BUTTON_WIDTH_HEIGHT / 2.0
button.layer.borderColor = UIColor.redColor().CGColor
button.layer.borderWidth = 2.0
button.setImage(UIImage(named:"TimoonPumba.png"), forState: .Normal)
button.addTarget(self, action: "roundButtonDidTap", forControlEvents: .TouchUpInside)
button.clipsToBounds = true
view.addSubview(button)
}
func roundButtonDidTap() {
NSLog(@"roundButtonDidTap Method Called");
}
答案 6 :(得分:1)
override func viewDidLoad() {
super.viewDidLoad()
let facebookButton = UIButton()
facebookButton.frame = CGRectMake(30, 200, 150, 150)
facebookButton.layer.cornerRadius = 75
facebookButton.layer.masksToBounds = true
self.view.addSubview(facebookButton)
}
答案 7 :(得分:0)
步骤1.使用[UIButton buttonWithType:UIButtonTypeCustom]
创建按钮。
步骤2. CGRectMake(100, 100, 100, 30)
是矩形。也许您想要使用图像的大小,如下所示:
CGRect frame = CGRectMake(100, 100, 0, 0);
frame.size = img.size;
button.frame = frame;
答案 8 :(得分:0)
圆形图像的圆形按钮不满足圆形按钮的需要。即使它们都是定制按钮也不行。这是因为,如果它在按钮大小范围内并且没有被剪裁,则此按钮甚至会响应圆形部分(仅仅是一个.png图像)之外的按钮。
这里给出的第一个答案(只有#vijay-apple-dev的第一个答案)是正确的。您需要剪切按钮框的边界,以便在图像外部停止响应
答案 9 :(得分:-4)
制作
[UIButton buttonWithType:UIButtonTypeCustom];
并尝试使用角半径属性
button.layer.cornerRadius = button.bounds.size.width/2 / 2.0