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

    };

}

你可能感兴趣的:(改变UIButton图片文字位置)