UIView的intrinsicContentSize方法,在按钮中重写

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

而后问题出现了,这个按钮的文字竟然显示不全了,也就是说在咱们设置了title insets后,系统没有再次sizeToFit相似的约束 ,固然sizeToFit是用frame时的让其自动适应内容大小,在约束的状况下就得用约束了,可是又由于不一样系统下的字号字体大小是不同的,因此titleLabel的宽度也是不定的。spa

自定义一个button,重写code

intrinsicContentSize

就能够了。在sb中设置title insets,而后就能跟sizeToFit同样的效果了。blog

 

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

    // 这里我只加了左间距,其余的也就没有必要写出来了
    CGFloat w = s.width + self.titleEdgeInsets.left;
    return CGSizeMake(w,s.height);
}
相关文章
相关标签/搜索