通过重写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;
}
效果如下:
Simulator Screen Shot 2017年9月8日 上午11.17.38.png
网友评论