UIKit框架-基础控件Swift版本: 2.UIButton方法/属性详解

前面我们讲完了控件的父类, 现在让我们正式进入基础控件的讲解, 现在来讲解第一个UI基础控件UIButton:


1.UIButton的类型

在UIButton里面有分几种类型, 让我们来看看:

enum UIButtonType : Int {

    // 1.自定义类型
    case Custom
    // 2.系统类型
    case System
    // 3.信息类型
    case DetailDisclosure
    // 4.也是信息类型
    case InfoLight
    // 5.也是信息类型
    case InfoDark
    // 6.添加类型
    case ContactAdd
}

这里就是UIButton的样式:
样式

下面是我们设置Button时的状态:

struct UIControlState : RawOptionSetType {
    init(_ rawValue: UInt)
    init(rawValue: UInt)
    // 1.UIButton正常的状态
    static var Normal: UIControlState { get }
    // 2.UIButton高亮的状态
    static var Highlighted: UIControlState { get }
    // 3.UIButton禁用的状态
    static var Disabled: UIControlState { get }
    // 4.UIButton选择的状态
    static var Selected: UIControlState { get }
    // 5.UIButton标志该应用可用(忽略, 没用过这个状态)
    static var Application: UIControlState { get }
    // 6.UIButton保留状态
    static var Reserved: UIControlState { get }
}

2.常用属性

在我们的UIButton里面也有一些我们常用的属性和一些不常用的属性, 不常用的属性我们只是带一下就可以了, 如果有需要的话再去仔细研究:

// 1.设置UIButton的标题, 以及状态
func setTitle(title: String?, forState state: UIControlState)
// 2.设置UIButton的标题颜色, 以及状态
func setTitleColor(color: UIColor?, forState state: UIControlState)
// 3.设置UIButton的前置图, 以及状态
func setImage(image: UIImage?, forState state: UIControlState)
// 4.设置UIButton的背景图, 以及状态
func setBackgroundImage(image: UIImage?, forState state: UIControlState)
// 5.设置UIButton的阴影颜色, 以及状态
func setTitleShadowColor(color: UIColor?, forState state: UIControlState)

PS: UIButton是可以设置两张图片, 一张是前置图, 一张是背景图, 但这里要注意一下, 如果你同时设置了前置图和title的话, 那么UIButton的显示效果就不太正常了.


3.演示

下面让我们来看看UIButton的演示:
1
2

创建好的工程就是这样子的了:
3

下面让我们来添加代码:

    func myButton() {
        // 1.创建UIButton, 并且设置为Custom样式
        var button: UIButton = UIButton.buttonWithType(UIButtonType.Custom) as UIButton

        // 2.设置UIButton的坐标轴
        button.frame = CGRectMake(100, 200, 100, 40)

        // 3.设置UIButton的背景色
        button.backgroundColor = UIColor.redColor()

        // 4.设置UIButton的Normal状态下的title
        button.setTitle("我是按钮", forState: UIControlState.Normal)

        // 5.设置UIButton的Normal状态下的title颜色
        button.setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)

        // 6.设置UIButton的Highlighted状态下的title
        button.setTitle("哎哟被点了", forState: UIControlState.Highlighted)

        // 7.设置UIButton的Highlighted状态下的title颜色
        button.setTitleColor(UIColor.greenColor(), forState: UIControlState.Highlighted)

        // 8.设置UIBUtton的Noraml状态下的title阴影颜色
        button.setTitleShadowColor(UIColor.whiteColor(), forState: UIControlState.Normal)

        // 9.设置UIButton的Highlighted状态下的title阴影颜色
        button.setTitleShadowColor(UIColor.darkGrayColor(), forState: UIControlState.Highlighted)

        // 10.添加UIBUtton在touchUpInside点击下的监听方法
        button.addTarget(self, action: "buttonTarget:", forControlEvents: UIControlEvents.TouchUpInside)

        // 其他属性
        // 11.设置Button的内容位置
        button.contentEdgeInsets = UIEdgeInsetsMake(100, 0, 0, 0)

        // 12.添加到self.view上
        self.view.addSubview(button)
    }


    // 13.UIButton的被监听方法
    func buttonTarget(sender: UIButton!) {

        // 14.随便打印一些值
        println("点击我干嘛?")

        // 15.删除监听方法
        sender.removeTarget(self, action: "buttonTarget:", forControlEvents: UIControlEvents.TouchUpInside)
    }

最后再把这些方法在viewDidload方法中实现:

    override func viewDidLoad() {
        super.viewDidLoad()
        self.myButton()
    }

出来的代码效果图:
效果图

运行之后的效果图:
效果图

PS: 模拟器的背景色是在别的地方修改了, 所以这里大家就不要纠结了, 而模拟器左边的几个按钮, 就是上面为了让大家看到的样式例子, 这里也不需要纠结, 中间红色的那个Button才是我们用代码直接创建的.


好了这次我们就讲到这里, 下次我们继续~~~

原文地址:https://www.cnblogs.com/iOSCain/p/4529354.html