我们常常需要用到按钮需要文字和图片同时显示,例如:
我们需要定义一个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的图文混排
最新推荐文章于 2020-11-09 10:18:34 发布