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
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
CGFloat imageY = 2.5;
contentRect = (CGRect){{imageX,imageY},{imageW,imageH}};
return contentRect;
}
//使用UIButton的子類
yxpButton *selectAreaButton=[[yxpButtonalloc] initWithFrame:CGRectMake(200,5, 100, 30)];
[selectAreaButton setTitle:@"圖文混排"forState:UIControlStateNormal];
[selectAreaButton setImage:[UIImageimageNamed:@"location"]forState:UIControlStateNormal];
[selectAreaButton setTitleColor:[UIColorwhiteColor] forState:UIControlStateNormal];
[navigationBgViewaddSubview:selectAreaButton];
就這樣 就可以實現一個按鈕的圖文混排了