扫码关注官方订阅号
为什么button的内容不显示在中央位置,当我点击button的时候,又能回到中间位置?求大神解答
ringa_lee
layoutSubView这个方法会调用两次,你这种写法的话,x的值被累加了,简单的办法就是加个标记
BOOL _isFirst; - (instancetype)init { self = [super init]; if (self) { _isFirst = YES; } return self; } - (void)layoutSubviews { [super layoutSubviews]; if (_isFirst) { _isFirst = NO; self.titleLabel.x = self.imageView.x; self.imageView.x = CGRectGetMaxX(self.titleLabel.frame); } } // 但是这种写法很屎,是需要优化的,但是涉及到layoutSubviews调用机制,细节还是很多的
或者可以直接用UIButton的属性titleEdgeInsets和imageEdgeInsets手动调整
触发layoutSubViews方法导致重新布局!关于这个形式的titleView,可以参考我之前做的一个demo:
ZSNavigationFilterMenuView
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
layoutSubView这个方法会调用两次,你这种写法的话,x的值被累加了,简单的办法就是加个标记
或者可以直接用UIButton的属性titleEdgeInsets和imageEdgeInsets手动调整
触发layoutSubViews方法导致重新布局!关于这个形式的titleView,可以参考我之前做的一个demo:
ZSNavigationFilterMenuView