UIButtom 实现图片在上文字在下效果

通过重写UIButton的imageRectForContentRect,titleRectForContentRect两个方法实现图片在上文字在下效果,主要代码如下(xib,纯代码都可以实现):

- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
    CGRect rect = [super imageRectForContentRect:contentRect];
    rect.origin.x = (CGRectGetWidth(contentRect)  - CGRectGetWidth(rect)) / 2.0;
    rect.origin.y = CGRectGetHeight(contentRect) * 0.2;
    
    return rect;
}

- (CGRect)titleRectForContentRect:(CGRect)contentRect
{
    CGRect rect = [super titleRectForContentRect:contentRect];
    //设置为0里要设置button的titleLabel.textAlignment为NSTextAlignmentCenter
    rect.origin.x = 0;
    rect.origin.y = CGRectGetMaxY([self imageRectForContentRect:contentRect]) + 5;
    rect.size.width = CGRectGetWidth(contentRect);
    
    return rect;
}

效果如下:


UIButtom 实现图片在上文字在下效果_第1张图片
Simulator Screen Shot 2017年9月8日 上午11.17.38.png

demo地址
https://github.com/Minozmin/HHMButtonDemo.git

你可能感兴趣的:(UIButtom 实现图片在上文字在下效果)