重写UIButton使图片在上,文字在下

系统自带的UIButton的排版默认是图片在左,文字在右:
但是开发中经常遇到需要把图片显示在上面,文字显示在下面的需求,如图:
  • 此时,我们就需要重写UIbutton:
  • 首先创建一个类继承自UIButton
  • 然后在LHLButton.m中重写- (void)layoutSubviews(我在项目中由于多次需要使用view的x,y,宽,高,所以我给UIView添加了分类,重写了setter,getter方法,我会另外写一篇文章单独介绍):
- (void)layoutSubviews
{
    [super layoutSubviews];
    
    self.imageView.lhl_y = 0;
    self.imageView.lhl_centerX = self.bounds.size.width * 0.5;
    
    self.titleLabel.lhl_y = self.bounds.size.height - self.titleLabel.frame.size.height;
    [self.titleLabel sizeToFit];
    self.titleLabel.lhl_centerX = self.bounds.size.width * 0.5;
}
  • 如果是用的xib一定要在这里指定Button的类型:
  • 在这里我只是重新计算了一下子控件的y值和center值,当然也可以全部重写,因为这里的需求比较简单,所以没必要全部重写.在重写的时候千万要注意,[self.titleLabel sizeToFit];这句一定要在计算self.titleLabel.lhl_centerX之前进行,否则在点击的时候会发生label位移的BUG:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容