我們常常需要用到按鈕需要文字和圖片同時顯示,例如:
我們需要定義一個UIButton的子類
實現文件
- ( id )initWithFrame:( CGRect )frame
{
self = [ super initWithFrame :frame];
if ( self ) {
//可根據自己的需要隨意調整
self . titleLabel . textAlignment = NSTextAlignmentRight ;
self . titleLabel . font =[ UIFont systemFontOfSize : 14.0 ];
self . imageView . contentMode = UIViewContentModeLeft ;
}
return self ;
}
//重寫父類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=[[ yxpButton alloc ] initWithFrame : CGRectMake ( 200 , 5 , 100 , 30 )];
[selectAreaButton setTitle : @"圖文混排" forState : UIControlStateNormal ];
[selectAreaButton setImage :[ UIImage imageNamed : @"location" ] forState : UIControlStateNormal ];
[selectAreaButton setTitleColor :[ UIColor whiteColor ] forState : UIControlStateNormal ];
[navigationBgView addSubview :selectAreaButton];
就這樣 就可以實現一個按鈕的圖文混排了
UIButton的圖文混排
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.