《iOS 6核心开发手册(第4版)》——2.2节按钮

简介:

本节书摘来自异步社区《iOS 6核心开发手册(第4版)》一书中的第2章,第2.2节按钮,作者 【美】Erica Sadun,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 按钮
iOS 6核心开发手册(第4版)
UIButton实例提供简单的按钮,用户可以敲击它们,或者通过目标—动作编程触发回调。可以指定按钮的外观,它使用什么艺术效果,以及它将显示什么文本。

iOS提供了两种方式来构建按钮。可以使用类型化的按钮,它带有几个预先设计的样式,或者从头开始构建自定义的按钮。当前的iOS软件开发工具包(SDK)提供了以下预先定义的类型。可以看到,可用的按钮并非是通用的。它们主要是为了给Apple(而不是你)提供方便而加入到SDK中的。这是由于一般来讲,Apple不会添加它们自己基本上不会使用的UI特性。然而,如果遵循Apple的人机界面指南(Human Interface Guideline,HIG),则可以根据需要在程序中使用它们。图2-2显示了每个按钮。


5865c1dd8db51570ffbc223ebfe904ed034da835

图2-2 iOS SDK提供了5种类型化的按钮,可以在IB中访问它们,或者把它们直接构建到应用程序中。
从左到右依次是:Detail Disclosure按钮、Info Light按钮和Info Dark按钮、Contact Add按钮和
Rounded Rectangle(圆角矩形)按钮

Detail Disclosure按钮——这是一个蓝色的圆形按钮,它与在向表格单元格中添加详细信息展开附件时看到的臂章图标相同。在表格中使用详细信息展开图标,可以使屏幕显示关于当前所选单元格的详细信息。
Info Light按钮和Info Dark按钮——这两个按钮提供一个用圆形圈住的小i,就像在Macintosh的Dashboard构件上看到的那样,可用于访问信息或设置屏幕。
Contact Add按钮——这是一个蓝色的圆形按钮,其中心具有一个白色的+,可以在Mail应用程序中看到它,用于给邮件添加新的收件人。
Rounded Rectangle按钮——这个按钮提供一个包围按钮文本的简单的圆角矩形。在其默认状态下,它不是一个特别吸引人的按钮(也就是说,它不具有非常“Apple”的外观),但是在应用程序中,它易于编程和使用。
严格来讲,UIButtonTypeCustom也是一个“预先制作”的按钮,这是由于它可以添加一个标签。由于它没有提供进一步的外观支持,大多数开发者都可以把它视作是完全自定义的按钮。

要在代码中使用类型化的按钮,可以分配它,设置其边框,并添加一个目标。不要担心添加自定义的艺术或者创建按钮的总体外观。SDK会负责所有这些任务。例如,下面显示了如何构建简单的圆角矩形按钮:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame: CGRectMake(0.0f, 0.0f, 80.0f, 30.0f)];
[button setCenter: self.view.center];
[button setTitle:@"Beep" forState:UIControlStateNormal];
[button addTarget:self action:@selector(playSound)
      forControlEvents:UIControlEventTouchUpInside];
[contentView addSubview:button];

要构建其他标准类型的按钮之一,可以省略标题行。圆角矩形按钮是唯一预先制作的使用标题的按钮类型。

大多数按钮都使用“触摸抬起”触发器,其中用户的触摸结束在按钮的界限内。iOS UI标准允许用户取消按下按钮动作,其方法是:在用户放开按压屏幕的手指之前把手指从按钮上移开。UIControlEventTouchUpInside事件选择反映了该标准。

在使用预先制作的按钮之前,必须遵守Apple的移动人机界面指南(Human Interface Guideline,HIG)来使用这些按钮。例如,添加一个通向信息页面的详细信息展开按钮,可以使应用程序从App Store中脱身而出。这似乎适当地拓展了按钮的作用,但是如果它不能满足Apple对按钮使用方式的准确期望,那么它可能不会通过评审(显然,这依赖于评审人,但是很难被迫保护一个违反HIG的应用程序)。要避免潜在的问题,只要有可能,你就可能希望使用圆角矩形按钮和自定义的按钮。

相关文章
|
2月前
|
JavaScript 前端开发 iOS开发
ios样式开关按钮jQuery插件
ios样式开关按钮jQuery插件
60 7
|
3月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
96 1
|
4月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
82 5
|
9月前
|
iOS开发
iOS13.6.1系统XR手机图文按钮显示不全问题
iOS13.6.1系统XR手机图文按钮显示不全问题
86 0
|
9月前
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
66 0
|
iOS开发
iOS MFMessageComposeViewController不显示取消按钮,导航条上白色,无取消按钮,无法返回应用...
iOS MFMessageComposeViewController不显示取消按钮,导航条上白色,无取消按钮,无法返回应用...
92 0
|
监控 Android开发 iOS开发
Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
162 0
|
API iOS开发 Perl
iOS Button连按处理防止按钮连续点击
iOS Button连按处理防止按钮连续点击
iOS--设置系统导航栏右上角按钮不显示问题
iOS--设置系统导航栏右上角按钮不显示问题
271 0
|
开发工具 iOS开发 git
iOS开发 - 类似美团选商品页,从按钮上往上滑动,tableview依然响应,点击按钮,按钮也可响应
iOS开发 - 类似美团选商品页,从按钮上往上滑动,tableview依然响应,点击按钮,按钮也可响应
236 0
iOS开发 - 类似美团选商品页,从按钮上往上滑动,tableview依然响应,点击按钮,按钮也可响应

热门文章

最新文章

  • 1
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 3
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 4
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    iOS8 中无需开源库的内置功能一览
  • 7
    iOS7应用开发7:自定义视图、手势操作
  • 8
    IOS小工具以及精彩的博客
  • 9
    Facebook SDK(iOS)初学讲解
  • 10
    iOS - Swift NSPoint 位置
  • 1
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    14
  • 2
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    28
  • 3
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    34
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 5
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 6
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    143
  • 7
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    235
  • 8
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    90
  • 9
    深入探索iOS开发中的SwiftUI框架
    145
  • 10
    ios样式开关按钮jQuery插件
    60