改变UIButton图片文字位置

1.图片居左,文字在右,垂直居中显示,文字与图片没有间距为10

代码如下:

- (void)setIconInLeft:(UIButton *)btn WithSpacing:(CGFloat)Spacing

{

   btn.titleEdgeInsets = (UIEdgeInsets){

        .top    = 0,

        .left  = Spacing/2,

        .bottom = 0,

        .right  = -Spacing/2,

    };


    btn.imageEdgeInsets = (UIEdgeInsets){

        .top    = 0,

        .left  = -Spacing/2,

        .bottom = 0,

        .right  = Spacing/2,

    };

}

2.图片居右,文字在左,垂直居中显示,文字与图片没有间距为10,

代码如下:

- (void)setIconInRight:(UIButton *)btn WithSpacing:(CGFloat)Spacing

{   

    CGFloat img_W = btn.imageView.frame.size.width;

    CGFloat tit_W = btn.titleLabel.frame.size.width;


    btn.titleEdgeInsets = (UIEdgeInsets){

        .top    = 0,

        .left  = - (img_W + Spacing / 2),

        .bottom = 0,

        .right  =  (img_W + Spacing / 2),

    };


    btn.imageEdgeInsets = (UIEdgeInsets){

        .top    = 0,

        .left  =  (tit_W + Spacing / 2),

        .bottom = 0,

        .right  = - (tit_W + Spacing / 2),

    };

}

3.图片居上,文字在下,垂直居中显示,文字与图片没有间距为10

代码如下:

- (void)setIconInTop:(UIButton *)btn WithSpacing:(CGFloat)Spacing

{

    CGFloat img_W = btn.imageView.frame.size.width;

    CGFloat img_H = btn.imageView.frame.size.height;

    CGFloat tit_W = btn.titleLabel.frame.size.width;

    CGFloat tit_H = btn.titleLabel.frame.size.height;


    btn.titleEdgeInsets = (UIEdgeInsets){

        .top    =  (tit_H / 2 + Spacing / 2),

        .left  = - (img_W / 2),

        .bottom = - (tit_H / 2 + Spacing / 2),

        .right  =  (img_W / 2),

    };


    btn.imageEdgeInsets = (UIEdgeInsets){

        .top    = - (img_H / 2 + Spacing / 2),

        .left  =  (tit_W / 2),

        .bottom =  (img_H / 2 + Spacing / 2),

        .right  = - (tit_W / 2),

    };

}

4.图片居下,文字在上,垂直居中显示,文字与图片没有间距为10

代码如下:

- (void)setIconInBottom:(UIButton *)btn WithSpacing:(CGFloat)Spacing

{

    CGFloat img_W = btn.imageView.frame.size.width;

    CGFloat img_H = btn.imageView.frame.size.height;

    CGFloat tit_W = btn.titleLabel.frame.size.width;

    CGFloat tit_H = btn.titleLabel.frame.size.height;


    btn.titleEdgeInsets = (UIEdgeInsets){

        .top    = - (tit_H / 2 + Spacing / 2),

        .left  = - (img_W / 2),

        .bottom =  (tit_H / 2 + Spacing / 2),

        .right  =  (img_W / 2),

    };


    btn.imageEdgeInsets = (UIEdgeInsets){

        .top    =  (img_H / 2 + Spacing / 2),

        .left  =  (tit_W / 2),

        .bottom = - (img_H / 2 + Spacing / 2),

        .right  = - (tit_W / 2),

    };

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容