1. 程式人生 > >IOS總結_實現UIButton的圖文混排(一)

IOS總結_實現UIButton的圖文混排(一)

http://blog.csdn.net/yxiaoping/article/details/38111845

我們常常需要用到按鈕需要文字和圖片同時顯示,例如:

我們需要定義一個UIButton的子類

實現檔案

- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

//可根據自己的需要隨意調整

self.titleLabel.textAlignment=NSTextAlignmentRight;

        self.titleLabel.font

=[UIFontsystemFontOfSize:14.0];

self.imageView.contentMode=UIViewContentModeLeft;

    }

returnself;

}

//重寫父類UIButton的方法

//更具button的rect設定並返回文字label的rect

- (CGRect)titleRectForContentRect:(CGRect)contentRect

{

    CGFloat titleW = contentRect.size.width-30;

    CGFloat titleH = contentRect.size.height

;

    CGFloat titleX = 0;

    CGFloat titleY = 0;

    contentRect = (CGRect){{titleX,titleY},{titleW,titleH}};

    return contentRect;

}

//更具button的rect設定並返回UIImageView的rect

- (CGRect)imageRectForContentRect:(CGRect)contentRect

{

    CGFloat imageW = 25;

    CGFloat imageH = 25;

    CGFloat

 imageX = contentRect.size.width-26;

    CGFloat imageY = 2.5;

    contentRect = (CGRect){{imageX,imageY},{imageW,imageH}};

    return contentRect;

}

    //使用UIButton的子類

    yxpButton *selectAreaButton=[[yxpButtonallocinitWithFrame:CGRectMake(200,510030)];

    [selectAreaButton setTitle:@"圖文混排"forState:UIControlStateNormal];

    [selectAreaButton setImage:[UIImageimageNamed:@"location"]forState:UIControlStateNormal];

    [selectAreaButton setTitleColor:[UIColorwhiteColorforState:UIControlStateNormal];

    [navigationBgViewaddSubview:selectAreaButton];


就這樣 就可以實現一個按鈕的圖文混排了