- 自定义一个 图文排列的 UIBUTTON
自定义一个UIControl 然后添加UILabel 和 UIImageView 以及添加 addTarget 的 各种 touchEvent 事件
let re:UIControl = UIControl()
let re:UIControl = UIControl() let imgV = UIImageView(frame: CGRect(x: 0, y: 0, width: deskBtnWh, height: deskBtnWh)) imgV.image = #imageLiteral(resourceName: "test") imgV.contentMode = .scaleAspectFit let titleV = UILabel(frame: CGRect(x: 0, y: deskBtnWh, width: deskBtnWh, height: deskBtnHt - deskBtnWh)) titleV.textAlignment = .center titleV.text = "I'm Title"; titleV.textColor = UIColor.init(white: 0.1, alpha: 1) titleV.font = UIFont.systemFont(ofSize: 12) titleV.lineBreakMode = .byClipping re.addSubview(imgV) re.addSubview(titleV) re.addTarget(#, action: #, for: #)
- 自定义一个UIbutton Class
class NewBtn:UIControl{ var imgV:UIImageView!; open var img:UIImage! = nil; open var title:String! = nil; func create(){ imgV = UIImageView(frame: CGRect(x: 0, y: 0, width: deskBtnWh, height: deskBtnWh)) imgV.image = img imgV.contentMode = .scaleAspectFit let titleV = UILabel(frame: CGRect(x: 0, y: deskBtnWh, width: deskBtnWh, height: deskBtnHt - deskBtnWh)) titleV.textAlignment = .center titleV.text = title; titleV.textColor = UIColor.init(white: 0.1, alpha: 1) titleV.font = UIFont.systemFont(ofSize: 12) titleV.lineBreakMode = .byClipping self.addSubview(imgV) self.addSubview(titleV) } func changeImg(newImg:UIImage){ img = newImg; imgV.image = img } }