我们常常需要用到按钮需要文字和图片同时显示,例如:
我们需要定义一个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的图文混排
最新推荐文章于 2025-07-19 15:02:10 发布
本文介绍了一个UIButton子类的实现方式,该子类可以同时显示文字和图片,并详细展示了如何通过自定义布局来达到图文混排的效果。
633

被折叠的 条评论
为什么被折叠?



