UIButton的图文混排

我们常常需要用到按钮需要文字和图片同时显示,例如: 

我们需要定义一个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];

就这样 就可以实现一个按钮的图文混排了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值