iOS-UIButton核心属性

UIBtton-自定制按钮

在系统的按钮中,我门可以给按钮添加背景图片,文字的属性,但在现实中我们会见到很多上面是图片下面是按钮的按钮,队员这样的按钮我们通过系统的按钮是无法创建出来的。这时我们就必须对系统的按钮方法进行重写,来自定制我们自己的按钮。

1.自定制按钮

既然要重写系统按钮的方法,这里我们新创建一个class让它继承UIButton然后在这个class重写方法,实现按钮的自定制。具体步骤如下代码

import UIKit
class LYMButton: UIButton {
//重新对按钮上显示图片的imageView设置frame
//contentRect:就是当前按钮的frame
override func imageRectForContentRect(contentRect: CGRect) -> CGRect {
    return CGRectMake(0, 0, contentRect.width, contentRect.height*3/4)
}
//重新对按钮上显示的文字的label设置frame
override func titleRectForContentRect(contentRect: CGRect) -> CGRect {
    return CGRectMake(0, contentRect.height*3/4, contentRect.width, contentRect.height/4)
  }
}

现在属于我们的按钮已经创建好了,我们接下来只需要在创建按钮的时候创建自己的按钮即可 下面我们在viewController中使用自己的按钮

    func myButton() {
    let btn = LYMButton()
    btn.frame = CGRectMake(100, 100, 200, 200)
    btn.setTitle("这个海好耍", forState: .Normal)
    btn.setTitleColor(UIColor.blueColor(), forState: .Normal)
    btn.setImage(UIImage.init(named: "2"), forState: .Normal)
    //        btn.backgroundColor = UIColor.blueColor()
    btn.titleLabel?.textAlignment = .Center
    self.view.addSubview(btn)
    btn.addTarget(self, action: #selector(timer), forControlEvents: .TouchUpInside)
    
}

效果如下:


iOS-UIButton核心属性_第1张图片
233AE9BE-5DC5-4BD5-ABA1-C1A4CE05DC69.png

2.UIButton点击事件

下面我们就来看看关于按钮的最核心的属性,大家都知道一个按钮创建出来就是给人们按的不然怎么会叫按钮呢,既然能按,如果按了没有反应又又有什么意义呢。
对于按钮的点击,我们只需调用下面的方法即可

btn.addTarget(self, action: #selector(btnAction), forControlEvents: .TouchUpInside)
大家可以看到这个函数有三个参数,下面我们对者三个参数进行说明
//参数1.调用方法的对象
//参数2.事件发生后背调用的方法
//参数3.事件
//常用
//TouchUpInside,按钮按下弹起事件
//TouchDown,按钮按下事件
//不常用
//TouchUpOutside,按钮按住不放 往按钮外拖事件
//TouchDownRepeat,按钮连续按上两次以上
//当指定事件发生后self会获取调用selector中的方法

对于你想要要按钮实现什么功能呢,你只需在按钮点击后调用的方法中给出即可,比如我在这里点击按钮实现产生一个随机色作为页面的背景

func btnAction() {
self.view.backgroundColor =
UIColor.init(red: CGFloat(arc4random_uniform(255))/255,
green: CGFloat(arc4random_uniform(255))/255,
blue: CGFloat(arc4random_uniform(255))/255, alpha: 1)
}

你可能感兴趣的:(iOS-UIButton核心属性)