zoukankan      html  css  js  c++  java
  • 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才是我们用代码直接创建的.


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

  • 相关阅读:
    05流程图和流程定义的操作
    04启动流程实例,任务的查询与完成
    03流程图的绘制与部署
    02数据库表的初始化方式
    01环境安装
    JavaScript基础和JavaScript内置对象:
    用手机、pid作为win电脑扩展屏
    H5新增特性之语义化标签
    盒模型
    CSS定位总结--static、relative、absolute、fixed
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4529354.html
Copyright © 2011-2022 走看看