系統(tǒng)自帶的UIButton的排版默認(rèn)是圖片在左,文字在右:
但是開(kāi)發(fā)中經(jīng)常遇到需要把圖片顯示在上面,文字顯示在下面的需求,如圖:
- 此時(shí),我們就需要重寫(xiě)UIbutton:
- 首先創(chuàng)建一個(gè)類(lèi)繼承自UIButton
- 然后在
LHLButton.m
中重寫(xiě)- (void)layoutSubviews
(我在項(xiàng)目中由于多次需要使用view的x,y,寬导梆,高藏斩,所以我給UIView添加了分類(lèi)屈溉,重寫(xiě)了setter,getter方法,我會(huì)另外寫(xiě)一篇文章單獨(dú)介紹):
- (void)layoutSubviews
{
[super layoutSubviews];
self.imageView.lhl_y = 0;
self.imageView.lhl_centerX = self.bounds.size.width * 0.5;
self.titleLabel.lhl_y = self.bounds.size.height - self.titleLabel.frame.size.height;
[self.titleLabel sizeToFit];
self.titleLabel.lhl_centerX = self.bounds.size.width * 0.5;
}
- 如果是用的xib一定要在這里指定Button的類(lèi)型:
- 在這里我只是重新計(jì)算了一下子控件的y值和center值,當(dāng)然也可以全部重寫(xiě),因?yàn)檫@里的需求比較簡(jiǎn)單,所以沒(méi)必要全部重寫(xiě).在重寫(xiě)的時(shí)候千萬(wàn)要注意,
[self.titleLabel sizeToFit];
這句一定要在計(jì)算self.titleLabel.lhl_centerX
之前進(jìn)行,否則在點(diǎn)擊的時(shí)候會(huì)發(fā)生label位移的BUG:
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者