我想知道是否可以绘制圆形 UIButton(不是圆形矩形)。
当我在自定义类型的 UIButton 中添加圆形图像时,它看起来像一个圆形按钮。但是在单击按钮的那一刻,按钮的边界变得可见,因此它看起来像一个方形按钮,然后在单击结束时再次看起来像一个圆形按钮。
即使在点击发生的那一刻,我也希望按钮看起来像一个圆形按钮。这可能吗?
测试代码:
。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];
结果
只需创建两个圆形按钮图像,一个用于按下状态,一个用于未按下状态。
在 IB 中,创建一个自定义类型的 UIButton。转到设置背景图像的部分,然后将带有“全部”的下拉菜单设置为正常 - 现在将图像设置为未按下的图像。
然后将下拉菜单更改为“已选择”,然后放入您按下的图像。
现在将填充类型更改为宽高比,并使按钮为方形。在任何地方用作普通的 UIButton。当然,您也可以通过类似的步骤(为 UIControlStateNormal 和 UIControlStateSelected 设置图像)以编程方式轻松完成所有这些操作。
您可能必须为此创建一个自定义控件,但您真的需要一个圆形按钮吗?
每个平台都有其 UI 约定,iPhone 也不例外。用户希望按钮是圆角矩形。
更新以回应评论:
如果我做对了,那么您不是在寻找圆形按钮,而是在寻找可点击(可触摸)的图像。
您可以使用 anUIImageView
及其touchesBegan
方法。
更新 2:
等一下。我们在谈论什么样的单选按钮?出于某种原因,我以为你是在模仿真正的收音机。如果您在谈论单选按钮组,请使用 aUISegmentedControl
或 a UIPicker
。
UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom];
but.layer.cornerRadius=50;
根据我对 SDK 的了解(诚然,除了书籍/截屏教程中的教程之外,我几乎没有经验),您必须创建自己的控件才能拥有单选按钮。关于如何在这个问题中实现它有一些建议。
也就是说,从用户的角度来看,我觉得坚持使用本机控件会更好。iPhone 用户习惯于使用特定控件(即 UITableViews 或 UIPickerViews)进行此类交互。偏离实际通用的 UI 惯例往往会使用户体验更加不和谐。
借助本网站在 iPhone 上创建圆形按钮。您可以获得许多自定义控件:)
http://www.cocoacontrols.com/controls
http://www.cocoacontrols.com/platforms/ios/controls/uiglossybutton
H@PPY 编码!
谢谢和问候, Gautam Tiwari