zoukankan      html  css  js  c++  java
  • Swift学习笔记-UIButton使用详解

      要使用任何一个控件都要先了解它的创建和相关属性。下面我们就一一来看:

    1、按钮(UIButton)的创建

          //创建一个custom类型的按钮
            /**
             UIButtonType 详解
             .custom (原形为 UIButtonType.custom)定制按钮,不带图标,默认文字颜色为白色,无触摸时的高亮效果
             .system (原形为 UIButtonType.system)不带图标,默认文字颜色为蓝色,有触摸时的高亮效果
             .detailDisclosure (原形为 UIButtonType.detailDisclosure)前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
             .infoLight (原形为 UIButtonType.infoLight)为感叹号“!”圆形按钮
             .infoDark (原形为 UIButtonType.infoDark)为感叹号“!”圆形按钮
             .contactAdd (原形为 UIButtonType.contactAdd)前面带“+”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
             
             ios7之后.detailDisclosure、.infoLight、.infoDark的效果都是前面带“!”图标按钮,默认文字颜色为蓝色,有触摸时的高亮效果
             */
            let btn:UIButton = UIButton.init(type:.custom)
            //使用init方法直接创建没有Type
    //        let btn:UIButton = UIButton.init()
            //设置按钮位置和大小
            btn.frame = CGRect.init(x: 12, y: 80,  120, height: 80)
            //设置按钮文字
            btn.setTitle("测试按钮", for:.normal)
            //设置按钮的背景颜色
            btn.backgroundColor = UIColor.red
            //将btn添加到控制器的view上
            self.view.addSubview(btn)

    2、按钮的相关属性

    let btn:UIButton = UIButton.init(type:.custom)
            //将btn添加到控制器的view上
            self.view.addSubview(btn)
            //设置按钮位置和大小
            btn.frame = CGRect.init(x: 12, y: 80,  120, height: 80)
            //设置按钮的背景颜色
            btn.backgroundColor = UIColor.red
            /**设置按钮文字
                .normal 普通状态下的文字
                .highlighted 触摸状态下的文字
                .disabled 禁用状态下的文字
                .selected 选中状态下的文字
                .focused 聚焦状态 (iOS新加入 没用过应该和3D Touch有关)
                .application 当用做应用标志时
                .reserved 框架预留 无意义
             */
            btn.setTitle("测试按钮", for:.normal)
            //按钮标题颜色
            btn.setTitleColor(UIColor.blue, for: .normal)
            //按钮标题的字体大小
            btn.titleLabel?.font = UIFont.boldSystemFont(ofSize: 15)
            //按钮文字阴影颜色
            btn.setTitleShadowColor(UIColor.white, for: .normal)
            //使触摸模式下按钮也不会变暗(半透明)
            btn.adjustsImageWhenHighlighted = false
            //使禁用模式下按钮也不会变暗(半透明)
            btn.adjustsImageWhenDisabled = false
            //设置按钮的图标,默认情况下按钮会被渲染成单一颜色(默认图标在左,标题在右)
            btn.setImage(UIImage.init(named: "icon2"), for: .normal)
            /**
             也可以设置成保留图标原来的颜色
             .automatic 根据图片的使用环境和所处的绘图上下文自动调整渲染模式
             .alwaysOriginal 始终绘制图片原始状态,不使用Tint Color
             .alwaysTemplate 始终根据Tint Color绘制图片,忽略图片的颜色信息
             
             let iconImage = UIImage(named:"icon2")?.withRenderingMode(.alwaysOriginal)
             btn.setImage(iconImage, for: .normal)
             */
            //图片与文字间的间距方式1 - 设置图片偏移量(imageEdgeInsets)
    //        btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, -20, 0)
            //图片与文字间的间距方式2 - 设置文字偏移量(titleEdgeInsets)
    //        btn.titleEdgeInsets = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 0)
            //按钮背景图片
            btn.setBackgroundImage(UIImage.init(named: "背景图片"), for: .normal)
            //添加触摸事件(不传递触摸对象)
            /**
             常用的触摸事件类型
             touchDown 单点触摸按下事件,点触屏幕
             touchDownRepeat 多点触摸按下事件,点触计数大于1,按下第2、3或第4根手指的时候
             touchDragInside 触摸在控件内拖动时
             touchDragOutside 触摸在控件外拖动时
             touchDragEnter 触摸从控件之外拖动到内部时
             touchDragExit 触摸从控件内部拖动到外部时
             touchUpInside 在控件之内触摸并抬起事件
             touchUpOutside 在控件之外触摸抬起事件
             touchCancel 触摸取消事件,即一次触摸因为放上太多手指而被取消,或者电话打断
             */
    //        btn.addTarget(self, action: #selector(btnClickAction), for: .touchUpInside)
            
    //        添加触摸事件(传递触摸对象)
            btn.addTarget(self, action: #selector(btnClickAction(btn:)), for: .touchUpInside)
            /**
             按钮文字太长时的处理方法
             默认情况下,如果按钮文字太长超过按钮尺寸,则会省略中间的文字如果要调整省略的字的位置可以通过修改 button 按钮中 titleLabel 的 lineBreakMode 属性。如:省略头部文字,省略部分用...代替
             */
            //如果要 看效果就把标题的内容写多点
            btn.titleLabel?.lineBreakMode = .byTruncatingHead
            
            //设置按键的圆角
            btn.layer.cornerRadius = 5
            //设置按钮的边框宽度
            btn.layer.borderWidth = 1
            //设置按钮边框的颜色
            btn.layer.borderColor = UIColor.yellow.cgColor
            //设置边框的透明度
            btn.alpha = 1
  • 相关阅读:
    hdu 4597 记忆化搜索
    hdu 4494 最小费用流
    hdu 4598 差分约束
    poj 3621 0/1分数规划求最优比率生成环
    poj 1695 动态规划
    noi 97 积木游戏
    hdu 4705 排列组合
    洛谷P2014 选课
    洛谷P1776 宝物筛选
    洛谷P1782 旅行商的背包
  • 原文地址:https://www.cnblogs.com/liYongJun0526/p/7544414.html
Copyright © 2011-2022 走看看