场景,一个有图片有文字的按钮在其父控件上加了上左的约束,然后,有需要要调整按钮与图片之间的间距,第一想法就是设置title insets 的left。

然后问题出现了,这个按钮的文字居然显示不全了,也就是说在我们设置了title insets后,系统没有再次sizeToFit类似的约束 ,当然sizeToFit是用frame时的让其自动适应内容大小,在约束的情况下就得用约束了,但是又因为不同系统下的字号字体大小是不一样的,所以titleLabel的宽度也是不定的。

自定义一个button,重写

intrinsicContentSize

就可以了。在sb中设置title insets,然后就能跟sizeToFit一样的效果了。

 

- (CGSize) intrinsicContentSize {
    CGSize s = [super intrinsicContentSize];

    // 这里我只加了左间距,其他的也就没有必要写出来了
    CGFloat w = s.width + self.titleEdgeInsets.left;
    return CGSizeMake(w,s.height);
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2021-10-18
  • 2022-12-23
  • 2021-12-27
猜你喜欢
  • 2021-06-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
  • 2021-05-19
  • 2022-12-23
相关资源
相似解决方案