我們在開發應用過程中有時會遇到這樣的需求:一個 Button 上同時顯示文字和圖片,文字在左邊圖片在右邊,並且隨文字多少動態變化。我們知道,如果是圖片在左邊文字在右邊,直接往 Button 上添加就可以了,Button 默認是圖片在左邊文字在右邊的,而且會隨着文字字數多少,圖片位置跟着變化。下面來實現文字在左邊圖片在右邊的效果:
轉載請注明出處:https://i.cnblogs.com/EditPosts.aspx?postid=5807467
首先,先自定義一個 CustomButton 繼承自 UIButton 在 .m文件中實現下面三個方法
#define kBtnImgWidth 24 //調整button內置label和image的相對位置 - (CGRect)titleRectForContentRect:(CGRect)contentRect { return CGRectMake(0, 0, contentRect.size.width, kBtnImgWidth); } - (CGRect)imageRectForContentRect:(CGRect)contentRect { return CGRectMake(contentRect.size.width-kBtnImgWidth, 0, kBtnImgWidth, kBtnImgWidth); } - (void)setTitle:(NSString *)title forState:(UIControlState)state { [super setTitle:title forState:state]; [self sizeToFit]; }
此時按鈕的圖片和文字顯示就是你想要的結果,而且會隨着文字多少變化圖片跟着變化,需要注意的是:在設置完 Button 的文字之后,要重新設置Button 的中心點位置。