圆形UIButton

时间:2009-03-20 13:13:56

标签: iphone

我想知道是否可以绘制圆形UIButton(非圆角矩形)。

当我在自定义类型的UIButton中添加圆形图像时,它看起来像一个圆形按钮。但是在点击按钮的那一刻,按钮的边界变得可见,因此它看起来像一个方形按钮,然后当点击结束时它再次看起来像一个圆形按钮。
即使在点击发生的那一刻,我希望按钮看起来像一个圆形按钮。这可能吗?

6 个答案:

答案 0 :(得分:9)

经过测试的代码:

·H

    -(void)vijayWithApple; 

的.m

   -(void)vijayWithApple{

            NSLog(@"vijayWithApple Called");
   }


UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setImage:[UIImage imageNamed:@"Micky.png"] forState:UIControlStateNormal];

[button addTarget:self action:@selector(vijayWithApple) forControlEvents:UIControlEventTouchUpInside];

[button setTitle:@"Show View" forState:UIControlStateNormal];

button.frame = CGRectMake(135.0, 180.0, 40.0, 40.0);//width and height should be same value

button.clipsToBounds = YES;

button.layer.cornerRadius = 20;//half of the width

button.layer.borderColor=[UIColor redColor].CGColor;

button.layer.borderWidth=2.0f;

[self.view addSubview:button];

<强>结果

enter image description here

答案 1 :(得分:4)

只需创建两个圆形按钮图像,一个用于按下状态,另一个用于未按下状态。

在IB中,创建一个Custom类型的UIButton。转到设置背景图像的部分,并将“全部”设置为正常 - 现在将图像设置为未处理的图像。

然后将下拉菜单更改为“已选择”,然后输入您按下的图像。

现在将填充类型更改为宽高比适合,并使按钮sqare。在任何地方用作普通的UIButton。当然,您也可以通过类似的步骤(为UIControlStateNormal和UIControlStateSelected设置图像)以编程方式轻松完成此操作。

答案 2 :(得分:2)

您可能需要为此创建自定义控件,但是您真的需要一个圆形按钮吗?

每个平台都有其UI惯例,iPhone也不例外。用户希望按钮是圆角矩形。

更新以回复评论:

如果我说得对,你不是在寻找一个圆形按钮,而是一个可点击(可触摸)的图像。

您可以使用UIImageView及其touchesBegan方法。

更新2:

等一下。我们在谈论什么样的单选按钮?出于某种原因,我以为你试图模仿真正的收音机。如果您正在谈论的是radio button群组,请使用UISegmentedControlUIPicker

答案 3 :(得分:2)

UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom];

but.layer.cornerRadius=50;

答案 4 :(得分:0)

根据我对SDK的了解(不可否认,除了书籍/截屏视频教程之外,我的经验很少),你必须创建自己的控件才能有一个单选按钮。关于如何在this question中实现该建议,有几点建议。

那就是说,从用户的角度来看,我觉得坚持原生控件会更好。 iPhone用户习惯于此类交互的特定控件(即UITableViews或UIPickerViews)。偏离几乎通用的UI惯例往往会使用户体验更加刺耳。

答案 5 :(得分:0)

借助此网站在iPhone上创建圆形按钮。 您可以获得许多自定义控件:)

http://www.cocoacontrols.com/controls

http://www.cocoacontrols.com/platforms/ios/controls/uiglossybutton

H @ PPY CODING!

谢谢&amp;问候, Gautam Tiwari