- 自定义一个 图文排列的 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
}
}