zoukankan      html  css  js  c++  java
  • UIButton

    UIButton

    类总述


      为了响应用户的交互动作,UIButton 对象可以执行自定义的代码。当你按下按钮时,或选择一个已经获取焦点的按钮时,按钮就会执行任何绑定到它上面的动作。通过文本、或图片、或两者结合的方面表达按钮的意图。按钮的外观是可配置的,因此,你可以给按钮着色,或者为了匹配应用的设计,对按钮的标题进行格式化。可以使用程序动态的添加按钮,也可以使用 Interface Builder

    概述


     


     

      按照以下的步骤在界面上添加一个按钮:

     

    • 在按钮创建时,为按钮设置类型

    • 提供一个文本标题或图片;根据内容,为按钮设置合适的尺寸

    • 给按钮连接一个或多个方法

    • 设置 Auto Layout 规则,用于在界面上管理按钮的尺寸和位置

    • 提供有用的信息和本地化的字符

      关于 view 基本行为的更多信息,请参见 View Programming Guide for iOS

    响应按钮点击


      当用户点击按钮时,按钮使用 Target-Action 的方式通知应用。不会直接处理点击事件,而是给按钮分配一个动作方法,指定哪些事件可以触发这些方法的调用。在运行时,按钮会处理所有收到的点击事件,然后调用指定的方法进行响应。
      使用 addTarget(_: action: for:) 方法把按钮与动作方法连接起来,或者也可以在 Interface Builder 中创建这样的连接。动作方法的签名有三种形式,如列表1中所示。选择一种形式,然后提示响应按钮点击时的信息就可以了。
      列表1,按钮的动作方法

    1. @IBAction func dosomething(); 
    2. @IBAction func dosomething(sender: UIButton); 
    3. @IBAction func dosomething(sender: UIButton, forEvent event: UIEvent); 

    配置按钮外观


      按钮的类型定义了按钮的外观和行为。在按钮创建时,使用 init(type:) 方法指定按钮的类型,或者,可以在故事板中进行设置。注意:按钮完成初始化后,样式不能被改变。最常用的按钮类型是:CustomSystem ,当然,其余的类型适用于某些场景。

    注意:
     在应用中,要统一配置所有按钮的外观,需要使用
    appearance proxy 对象。UIButton 类实现了
    appearance() 方法,可以使用该方法获取应用中所有按钮的外观代理。

    按钮状态


      按钮有五种定义了外观的状态:defaulthighlightedfocusedselecteddisabled。当往界面上添加按钮时,最初,按钮是默认状态,这也就意味着按钮是可用的,并且,用户还没和按钮发生交互。当用户与按钮发生交互时,按钮的状态就变成了其它的值。例如,当用户按下按钮,并持续了一段时间,那么,按钮就变成了高亮状态。

      不论是用代码生成的按钮,还是使用 interface Builder 创建的按钮,都需要为按钮的每一种状态指定单独的属性。在 interface Builder 中,使用 Attributes inspector 面板中的 State Config control 来选择合适的状态和配置其它属性。如果某种状态没有指定合适的值,那么,UIButton 类会提供一个合理的默认行为。例如,一个处于 disabled 状态的按钮,一般来说是灰色的,并且当它被点击时,并不会显示为高亮。

    按钮内容


      按钮的内容由开发者指定的字符或图片组成。按钮的内容被用来配置由按钮本身管理的 UILabelUIImageView 对象。直接可以通过按钮的 titleLabelimageview 属性来获取值或对已经存在的值做改变。同时,UIButton 类也提供了配置字符和图片的快捷方法。

      通常,要么使用标题,要么使用图片来确定按钮的尺寸。按钮也可以有背景图片,背景图片会出现在内容的后面。可以为按钮既指定背景图片,又指定图片和标题,这样做的结果正如 图1 显示的那样,使用图中标明的属性,就能获取对应元素的值。

      图1:给按钮提供了标题和图片

            

      在设置按钮的内容时,必须为每一种状态单独地指定标题,图片和外观属性。如果某个状态下没有指定内容,那么按钮将会使用默认状态的值,并添加合适的自定制。例如,高亮状态下,如果没有提供自定义的图片,在按钮的默认图片上,将会绘制一个高亮。

    着色


      使用 tiniColor 属性给按钮指定颜色。该属性设置了按钮图片和文本的颜色。如果没有显示地指定该属性的值,那么,按钮就会使用它父控件的 tintColor 值。

    边界插图(Edge Insets)


      在 customsystem 类型的按钮上,使用 insets 可以添加或移除围绕在内容周围的空白。可以分别为标题(titleEdgeInsets)、图片(imageEdgeInsets)或标题与图片的整体(contentEdgeInsets)指定各自的 insets。如果设置了 insets,它会影响按钮的矩形,按钮的矩形被自动布局引擎(Auto Layout engine)用来检测按钮的位置。

  • 相关阅读:
    Vue中事件委托的使用
    java提取每个汉字的首字母
    想把大脑存进电脑,我为什么要写博客
    CF 1606 D题题解
    js前端 音频波形图像展示
    js前端 仪表盘实现
    js前端 bootstrap select的使用
    UOS系统维护命令
    linux 打印机管理常用命令
    linux 调用shell命令
  • 原文地址:https://www.cnblogs.com/wchhuangya/p/5699186.html
Copyright © 2011-2022 走看看