iOS的button交换图片和文字位置
ringa_lee
ringa_lee 2017-04-17 17:27:15
[iOS讨论组]

为什么button的内容不显示在中央位置,当我点击button的时候,又能回到中间位置?求大神解答

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
迷茫

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号