系統(tǒng)自帶的UIButton的排版默認(rèn)是圖片在左,文字在右:
但是開發(fā)中經(jīng)常遇到需要把圖片顯示在上面,文字顯示在下面的需求,如圖:
- 此時(shí),我們就需要重寫UIbutton:
- 首先創(chuàng)建一個(gè)類繼承自UIButton
- 然后在
LHLButton.m中重寫- (void)layoutSubviews(我在項(xiàng)目中由于多次需要使用view的x,y,寬,高,所以我給UIView添加了分類,重寫了setter,getter方法,我會(huì)另外寫一篇文章單獨(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的類型:
- 在這里我只是重新計(jì)算了一下子控件的y值和center值,當(dāng)然也可以全部重寫,因?yàn)檫@里的需求比較簡(jiǎn)單,所以沒必要全部重寫.在重寫的時(shí)候千萬要注意,
[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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。