之前筆者寫過一個OC版本,http://www.lxweimin.com/p/a81a874a33bc
這個是Swift版本, 但是兩個版本使用的方法不一樣, 效果一樣
override init(frame: CGRect) {
super.init(frame: frame)
imageView?.contentMode = .Center// 圖片模式
titleLabel?.textAlignment = .Center// 文字木事
titleLabel?.font = UIFont.systemFontOfSize(15)//字體大小
/*=====還有很多其他屬性,根據需求自己更改=====*/
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
//==========>根據實際需要更改frame
override func layoutSubviews() {
super.layoutSubviews()
// 對子 控件 布局, 左右顯示,改為上下顯示 (按鈕初始化的size為(60,80))
// 設置imageView
// 設置imageView
imageView?.frame = CGRect(x: 0, y: 0, width: 60, height: 60)
// 設置title
titleLabel?.frame = CGRect(x: 0, y: 60, width: 60, height: 20)
+++++++++++++++++++++++++++++++++++++
由于layoutSubviews在會多次調用,CGRect(x: 0, y: 0, width: 60, height: 60)最好使用數字,
如果使用frame設置,在按鈕有放大縮小的動畫時候, 會有bug
+++++++++++++++++++++++++++++++++++++
}