調(diào)整UIButton中自帶的imageView和titleLable的位置

參考:

調(diào)整UIButton中的imageView和titleLabel的相對(duì)位置

==

通過調(diào)整子控件的【邊緣內(nèi)邊距】edgeInset來實(shí)現(xiàn):imageEdgeInsets 、titleEdgeInsets

這種方式感覺不好調(diào),調(diào)起來貌似不太準(zhǔn)

==
還是建議自定義按鈕的方式,而且其他地方用起來也方便

h文件

#import <UIKit/UIKit.h>

@interface Btn : UIButton

@end

m文件

#import "Btn.h"

@implementation Btn

// 自定義按鈕的frame方法
- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
        self.titleLabel.textAlignment = NSTextAlignmentCenter;
        // 字體不分狀態(tài)
        self.titleLabel.font = [UIFont systemFontOfSize:14];
        self.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
        [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        self.backgroundColor = [UIColor clearColor];

    }
    return self ;
}



- (void)layoutSubviews
{
    [super layoutSubviews];
    
    CGFloat buttonW = self.frame.size.width;
    CGFloat buttonH = self.frame.size.height;
    
    CGFloat imageW = 20;
    self.titleLabel.frame = CGRectMake(0, 0,buttonW - imageW + 5, buttonH);
    self.imageView.frame = CGRectMake(self.titleLabel.frame.size.width - 5, 5, imageW, imageW);

}

@end

使用

    _btn = [[Btn alloc] initWithFrame:CGRectMake(0, 0, left_width, 28)];
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容