iOS 自定義 Button 實現文字圖片同時顯示,文字在左邊圖片在右邊,並且圖片位置隨文字多少動態變化


我們在開發應用過程中有時會遇到這樣的需求:一個 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 的中心點位置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM