美文网首页
Swift(十六)UIButton

Swift(十六)UIButton

作者: YvanLiu | 来源:发表于2017-08-28 16:27 被阅读331次

    更新:2018.05.24

    整理了一下demo:SwiftDemo


    • 在APP中,UIButton可以说是随处可见,UIButton继承自UIControlUIControl又继承自UIView,在iOS中,一切看得到、摸得着的都是UIView
    • 我们可以为UIButton设置标题、文本、图片和背景色等。通过这些信息,用户就知道了点击这个按钮,会发生什么样的反应。

    1. 创建UIButton

    let button = UIButton(type: .custom)
    

    a. .custom 是枚举 UIButtonType的属性:

    • custom: 自定义风格
    • system: 系统默认button
    • detailDisclosure: 带有圆圈,圆圈中有叹号,一般用于当前列表项的详情。
    • infoLight: 样式同上,一般用于简短的说明
    • infoDark: 样式同上,一般用于简短的说明
    • contactAdd: 带有圆圈,圆圈中有加号,一般用于添加相关
    button.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
    view.addSubview(button)
    

    设置坐标,添加到父视图上

    2. 设置样式

    // 设置背景图片
    button.setBackgroundImage(UIImage(named:""), for: .normal)
    // 设置背景颜色
    button.backgroundColor = UIColor.green
    

    c. 设置背景图片和背景颜色,.normal是结构体UIControlState的属性:

    • normal:代表按钮的默认状态
    • highlighted:代表按钮的高亮状态
    • disabled:代表按钮禁用后的状态
    • selected:代表按钮的选中时的状态
    • focused:只有当屏幕支持焦点时才适用
    • application: 用于应用程序的额外标志
    • reserved: 为内部框架使用而预留(不用管它)
    // 设置标题(默认状态下)
    button.setTitle("this is a button", for: .normal)
    // 设置标题(高亮状态)
    button.setTitle("hightlight button", for: .highlighted)
    // 设置标题字体颜色(默认状态)
    button.setTitleColor(UIColor.white, for: .normal)
    // 设置标题字体颜色(高亮状态)
    button.setTitleColor(UIColor.red, for: .highlighted)
    // 设置标题文字大小和字体
    button.titleLabel?.font = UIFont.systemFont(ofSize: 15)
    

    d. 常用的设置标题的方法,默认状态下和高亮状态下,标题的颜色和文本呈现不同。

    // 设置图片(默认状态)
    button.setImage(UIImage(named:""), for: .normal)
    // 设置图片(选中状态)
    button.setImage(UIImage(named:""), for: .selected)
    

    e. 设置图片,选中状态和默认状态呈现图片不同。

    // 设置图片在button中位置
    button.imageEdgeInsets = UIEdgeInsets(top: 5, left: 5, bottom: 20, right: 5)
    // 设置文字在button中位置
    button.titleEdgeInsets = UIEdgeInsets(top: 80, left: 5, bottom: 0, right: 5)
    

    f. 设置图片和文字在button中的位置,UIEdgeInsets是一个结构体:有四个属性top、left、bottom、right

    button.adjustsImageWhenDisabled = false
    button.adjustsImageWhenHighlighted = false
    

    g. 按钮在高亮状态和禁用状态时,在这两个属性都被设置为true的情况下,如果没有设置这两种状态对应的图片,系统会把默认状态的图片变暗一些,用于区分高亮状态和普通状态。

    button.tintColor = UIColor.yellow
    

    h. 如果UIButton是custom属性的话,并不会从父类中继承tintColor,tintColor默认是蓝色,UIButton受到tintColor影响的只有title和image,但如果修改了textColor,那么tintColor就不起作用了。

    3. 添加方法

    button.addTarget(self, action: #selector(buttonClick), for: .touchUpInside)
    
     func buttonClick() {
            print("This is a button~")
        }
    

    i. 添加方法,touchUpInside是结构体UIControlEvents的属性,在Swift(十五)控件UIControl中已经说过了,这个方法的作用是:当点击按钮时,由第一个参数设置的target执行第二个参数设置的方法action

    相关文章

      网友评论

          本文标题:Swift(十六)UIButton

          本文链接:https://www.haomeiwen.com/subject/dbkgdxtx.html