美文网首页
改变UIButton图片文字位置

改变UIButton图片文字位置

作者: keelZJP | 来源:发表于2019-11-25 11:20 被阅读0次

    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),

        };

    }

    相关文章

      网友评论

          本文标题:改变UIButton图片文字位置

          本文链接:https://www.haomeiwen.com/subject/gzudwctx.html