【问题标题】:Round UIButton圆形 UIButton
【发布时间】:2010-10-14 13:03:36
【问题描述】:

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

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

【问题讨论】:

  • 您可能会发现 OBShapedButton 是一个有用的子类;源代码在这里github.com/ole/OBShapedButton 可用,它允许使用具有透明度的不规则形状按钮,其功能与普通 UIButton 相同。

标签: ios uibutton


【解决方案1】:

测试代码:

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

结果

【讨论】:

  • StackOverflow 用一个单词拼写,而不是 3 个。:)
  • 这个网站的域名拼写为一个单词,但那是因为它只是……一个域名。 Stack Overflow 是两个字。
  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
  • @AndrewWhitaker - 现在问题已经解决,我撤回了我的标志。我没有意识到事实上,这是一个答案,然后发布的人通过删除它并仅用一个链接替换它来破坏它。
  • 只有我觉得文件名是Micky.png很幽默,但后来却是索尼克的照片?
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

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

    更新回应评论:

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

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

    更新 2:

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

    【讨论】:

    • 实际上我需要添加一个单选按钮。为此,我有一个圆形的单选按钮图像。这就是为什么我想画一个圆形按钮
    • 是的,我会试试这个方法。我认为在按钮中添加图像会更容易。
    【解决方案4】:
    UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom];
    
    but.layer.cornerRadius=50;
    

    【讨论】:

    • 你还需要添加 but.clipsToBounds = YES;
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

      http://www.cocoacontrols.com/controls

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

      H@PPY 编码!

      感谢和问候, 高塔姆提瓦里

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-28
        相关资源
        最近更新 更多