swift UIButton

甄阿苏
2023-12-01

    /* swift3.0  UIButton用法 */

    

    /* 1. 创建button的几种类型 

         (1)UIButtonType.system: 前面不带图标,默认文字颜色为蓝色,触摸有高亮效果

         (2)UIButtonType.custom: 定制按钮,前面不带图片,默认文字颜色为白色,无触摸时的高亮效果

         (3)UIButtonType.contactAdd: 前面带+图标按钮,默认颜色为蓝色,触摸有高亮效果

         (4)UIButtonType.....

    */

        

        

        

        /* 创建button */

        let button:UIButton = UIButton.init(type: .custom)

        button.bounds = CGRect.init(origin: CGPoint.zero, size: CGSize.init(width: 100, height: 40))

        button.center = view.center

        button.setTitle("hello world", for: .normal)

        button.setTitleColor(UIColor.red, for: .normal)

        button.layer.borderColor = UIColor.red.cgColor

        button.layer.borderWidth = 1;

        view.addSubview(button)

        

        

        

    /* 2. button的四种状态 

         (1) .normal 普通状态

         (2) .highlighted  触摸状态,按下~弹起之间

         (3) .selected 选中状态

         (4) .disabled 禁用状态下的文字

         

        button上的文字,颜色,图片等需要针对不同的状态设置;

    */

       

        /* 按钮的文字设置 */

        button.setTitle("普通状态", for: .normal)

        button.setTitle("高亮状态", for: .highlighted)

        button.setTitle("禁用状态", for: .disabled)

        

        

        

        

        /* 按钮的文字颜色设置  .custom形式创建的button,文本默认为白色 */

        button.setTitleColor(UIColor.black, for: .normal)

        button.setTitleColor(UIColor.red, for: .highlighted)

        button.setTitleColor(UIColor.green, for: .selected)

        button.setTitleColor(UIColor.gray, for: .disabled)

        

        

        

        

        /* 按钮文字阴影颜色的设置 */

        button.setTitleShadowColor(UIColor.red, for: .normal)

        /* 通过button设置shadowColor之后设置 labelshadowcolor无效 */

        button.titleLabel?.shadowColor = UIColor.gray

        /* 需要设置label中的shadowOffset才来出现阴影*/

        button.titleLabel?.shadowOffset = CGSize.init(width: 1.5, height: 1.5)

        

        

        

        

        /* 不同状态下 背景图片设置 */

        button.setBackgroundImage( UIImage.init(named: "a.png"), for: .normal)

        button.setBackgroundImage( UIImage.init(named: "b.png"), for: .highlighted)

        

        /* 背景颜色 设置(不区分状态) */

        button.backgroundColor = UIColor.green;

        

        

        

        

        /* 在有些控件中设置image 会被渲染成统一颜色,而导致原来的颜色改变 */

        // 设置RenderingMode(.alwaysOriginal) 保证使用原图片

        let image = UIImage.init(named: "a.png")?.withRenderingMode(.alwaysOriginal)

        button.setImage(image, for: .selected)

        

        /* 设置取消高亮状态 */

        button.adjustsImageWhenHighlighted = false;

        /* 设置取消状态 */

        button.adjustsImageWhenDisabled = false;

        

    /* 按钮事件

            

         touchDown 单点触摸按下 事件

         touchDownRepeat 多点触摸按下事件

         touchDragInside 触摸在控件内拖动时

         touchDragOutside 触摸在控件外拖动

         touchDragEnter   触摸从控件之外拖动到内部

         touchDragExit    触摸从控件内部拖动到外部

         touchUpInside    在控件之内触摸并抬起事件

         touchUpOutside   在控件之外触摸抬起事件

         touchCancel      触摸取消事件,即一次触摸因为放上太多手指而被取消,或者被电话打断

         valueChanged     值改变

         

         用的比较多的就是touchUpInside valueChanged

         

    */

    /* 按钮事件响应 */

        button.addTarget(self, action: #selector(call), for:.touchUpInside)


        

 类似资料:

相关阅读

相关文章

相关问答