如何创build一个圆形button?
我是Iphone开发新手。
我想创build一个圆形的圆形button。 这个button应该看起来像一个圆圈。
这给了圆形的矩形button。
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];
我想出了如何创build一个圆angular的矩形button,但我想创build一个圆形的圆形button。 请build议。
testing代码:
。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];
结果
几何在这个概念
故事板选项(应适用于Swift或ObjC) –
如果你喜欢在故事板中工作,还有另一种select。
首先,将宽度和高度设置为相同的值,以制作完美的方形。
其次,input以下属性。 重要 – 使您的layer.cornerRadius值的一半大小的宽度。
然后,当你运行应用程序,你的button将是圆的。
试试这个,它为我工作。 它只会让你的button或圆形的任何视图,如果你把它在正方形,即宽度应该等于高度。
yourButton.layer.cornerRadius = yourButton.bounds.size.width/2;
在iOS 8的Xcode 7.0.0中,这段代码完全适合我。 只要button框架的长度和高度相同。
myButton.clipsToBounds = YES; myButton.layer.cornerRadius = myButton.layer.frame.size.width/2;
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];
使用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"); }
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) }
**要制作圆形button,必须给button的高度和宽度相同,并将一半的值赋予angular半径**
第1步。使用[UIButton buttonWithType:UIButtonTypeCustom]
创buildbutton。
第2步CGRectMake(100, 100, 100, 30)
是一个矩形形状。 也许你想要使用你的图像的大小,而不是像这样:
CGRect frame = CGRectMake(100, 100, 0, 0); frame.size = img.size; button.frame = frame;
圆形图像的圆形button不能满足圆形button的需要。 即使他们是自定义button。 这是因为,如果这个button在button尺寸范围内并且没有被剪裁,那么即使在圆形部分之外(即,仅仅是一个.png图像),这个button也会响应水龙头。
第一个答案(只有#vijay-apple-dev的第一个答案)是正确的。 您需要剪切button框的边界,以便在图像外面停止响应
做一个
[UIButton buttonWithType:UIButtonTypeCustom];
并尝试使用拐angular半径属性
button.layer.cornerRadius = button.bounds.size.width/2 / 2.0