4

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

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

4

6 回答 6

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];

结果

在此处输入图像描述

于 2011-08-05T09:18:58.393 回答
4

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

在 IB 中,创建一个自定义类型的 UIButton。转到设置背景图像的部分,然后将带有“全部”的下拉菜单设置为正常 - 现在将图像设置为未按下的图像。

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

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

于 2009-03-20T22:09:06.570 回答
2

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

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

更新以回应评论:

如果我做对了,那么您不是在寻找圆形按钮,而是在寻找可点击(可触摸)的图像。

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

更新 2:

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

于 2009-03-20T13:51:00.743 回答
2
UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom];

but.layer.cornerRadius=50;
于 2011-07-19T04:01:55.540 回答
0

根据我对 SDK 的了解(诚然,除了书籍/截屏教程中的教程之外,我几乎没有经验),您必须创建自己的控件才能拥有单选按钮。关于如何在这个问题中实现它有一些建议。

也就是说,从用户的角度来看,我觉得坚持使用本机控件会更好。iPhone 用户习惯于使用特定控件(即 UITableViews 或 UIPickerViews)进行此类交互。偏离实际通用的 UI 惯例往往会使用户体验更加不和谐。

于 2009-03-20T14:27:28.287 回答
0

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

http://www.cocoacontrols.com/controls

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

H@PPY 编码!

谢谢和问候, Gautam Tiwari

于 2012-05-22T12:25:37.450 回答