美文网首页
关于UIButton字与图片位置的调整

关于UIButton字与图片位置的调整

作者: 风之魄 | 来源:发表于2018-01-02 13:46 被阅读0次

    第一种 自定义按钮

    1、自定义一个类(WCButton)继承自UIButton,此种方法适用于app内需要大量的字体在下图片在上的按钮时使用

    重写- (CGRect)titleRectForContentRect:(CGRect)contentRect;此方法可以设置按钮的字体位置

    - (CGRect)titleRectForContentRect:(CGRect)contentRect{

    CGFloat titleX = 0;

    CGFloat titleHeight = contentRect.size.height * kTitleRatio;

    CGFloat titleY = contentRect.size.height - titleHeight ;

    CGFloat titleWidth = contentRect.size.width;

    return CGRectMake(titleX, titleY, titleWidth, titleHeight);

    }//设置字体在下,kTitleRatio为一个宏值,设置字体从按钮的什么位置开始

    重写-(CGRect)imageRectForContentRect:(CGRect)contentRect;此方法可以设置按钮的图片的位置

    - (CGRect)imageRectForContentRect:(CGRect)contentRect{

    CGFloat imageHeight = contentRect.size.height*(1-kTitleRatio)*3/4;

    CGFloat imageY = contentRect.size.height*(1-kTitleRatio)/8;

    CGFloat imageWidth = imageHeight;

    CGFloat imageX = (contentRect.size.height-imageWidth)/2;

    return CGRectMake(imageX, imageY, imageWidth, imageHeight);

    }//设置图片在上边

    2、自定义一个类(FWCButton)继承自UIButton,此方法适用于app内需要大量的调整按钮的图片与字体的位置时使用

    首先定义一个枚举值

    typedef NS_ENUM(NSUInteger, MKButtonEdgeInsetsStyle) {

    MKButtonEdgeInsetsStyleTop, // image在上,label在下

    MKButtonEdgeInsetsStyleLeft, // image在左,label在右

    MKButtonEdgeInsetsStyleBottom, // image在下,label在上

    MKButtonEdgeInsetsStyleRight // image在右,label在左

    };

    待补充

    第二种方法 不用自定义

    1、正常生成按钮,最后只需两句代码设置即可

    butn.imageEdgeInsets=UIEdgeInsetsMake(0,8,21,butn.titleLabel.bounds.size.width);通过此方法设置按钮图片位置

    butn.titleEdgeInsets=UIEdgeInsetsMake(butn.imageView.bounds.size.width, butn.titleLabel.bounds.size.width-65, 0, 0);通过此方法设置按钮的字体位置

    相关文章

      网友评论

          本文标题:关于UIButton字与图片位置的调整

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