【问题标题】:How to create a button similar to "Remove Contact" button on iPhone?如何在 iPhone 上创建类似于“删除联系人”按钮的按钮?
【发布时间】:2010-12-01 00:39:03
【问题描述】:

Apple 有许多非标准的大彩色按钮。其中之一是地址簿中的删除联系人按钮。另一个是计时器(时钟应用程序)中的开始/停止按钮或电话中的结束通话按钮。它们是不同的,但都具有相似的外观。

问题很简单。有没有一种方法可以在不使用背景图像/屏幕截图或从头开始重新创建它们的情况下创建此类按钮?

谢谢。

【问题讨论】:

    标签: iphone user-interface button


    【解决方案1】:

    你可以试试Opacity。新版本允许您绘制矢量图像并生成 UIKit 友好的 Objective-C 代码来重新创建绘图。

    【讨论】:

    • 嗯,这不是我要找的东西。我需要一个程序化解决方案,而不是图像编辑器。
    • 也许我不清楚。这是一个生成Objective-C代码的绘图程序。您使用绘图工具来绘制按钮,使其看起来像您想要的那样,然后生成一个包含您编译到项目中的 drawRect 代码的 .m 文件,而不是 PNG 文件。非常有趣的技术。网上有 iPhone UI Vector 元素示例,您可以自定义然后转换为 CG 绘图代码。
    • 哇,谢谢。我完全错过了那个功能。这很有趣。
    【解决方案2】:

    好吧,我尝试了很多方法,但最简单的方法是制作具有自定义样式的 UIButton。

    如果您需要表格页脚中的“删除”按钮 - 例如在联系人或事件中,代码如下:

        UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 60)];
    
        UIButton *newDeleteButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        newDeleteButton.frame = CGRectMake(10, 10, 300, 43);
        UIImage *buttonBackground = [UIImage imageNamed:@"ButtonDelete.png"];
        [newDeleteButton setImage:buttonBackground forState:UIControlStateNormal];
        [newDeleteButton addTarget:self action:@selector(deleteButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    
        UILabel *deleteTitle = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 39)];
        deleteTitle.text = @"Delete";
        deleteTitle.font = [UIFont boldSystemFontOfSize:20];
        deleteTitle.textColor = [UIColor whiteColor];
        deleteTitle.textAlignment = UITextAlignmentCenter;
        deleteTitle.backgroundColor = [UIColor clearColor];
    
        [footerView addSubview:newDeleteButton];
        [footerView addSubview:deleteTitle];
        formTableView.tableFooterView = footerView;
    

    首先,您为页脚创建视图。

    然后您制作一个具有正确背景的按钮 - 只需为您需要的任何按钮制作屏幕截图并从中删除字母。

    比您为按钮创建标题并将其放在按钮上。

    最后一步是将按钮和标题放入footer view,将footer view放入table中。

    【讨论】:

    • 您可以简单地访问按钮的 titleLabel 属性并更改其属性,而不是创建自己的标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2015-07-05
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    相关资源
    最近更新 更多