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;
}

效果如下:


Simulator Screen Shot 2017年9月8日 上午11.17.38.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,295评论 25 709
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,605评论 8 183
  • 上学时班会上,老师组织我们给十年后的自己写信,只记得洋洋洒洒写了几大篇,而具体内容却都忘掉了。 如今又要写十年后,...
    塔塔妹阅读 1,801评论 0 0
  • 晚上和闺密开视频,她突然来了句,你怎么不画眉啊。我愣了愣说,刚洗掉了,我还是不习惯。可她说,你得学着会化妆,慢慢...
    俞晴阅读 1,846评论 0 0
  • 吃货是一个动词,而不是个名字,它是一个动态的过程。也就是说做一个有质量的吃货,就不那么容易了。 首先,要有一个发现...
    星期五读书会阅读 1,630评论 0 0

友情链接更多精彩内容