ios - UIView重复调用多次layoutSubviews方法
ringa_lee
ringa_lee 2017-04-18 09:25:36
0
2
669

上面这段代码是我自定义UIView里面的一个UILabel,因为我需要在Controller里面动态更新该UILabel的内容,所以我在自定义UIView里面重写了UILabel的getter方法。
现在问题来了,当我在Controller里面给UILabel赋值的时候,却导致了一个严重的问题,自定义UIView一直在重复调用若干次layoutSubviews这个方法。非常郁闷,不知道哪里出了问题。
希望各位能给我指条明路,解决了很久没找出问题所在。感谢

- (UILabel *)moneyLabel
{
    if (!_moneyLabel) {
        _moneyLabel = [[UILabel alloc] init];
        _moneyLabel.textAlignment = NSTextAlignmentCenter;
        [_moneyLabel setTextColor:MAIN_COLOR];
        [_moneyLabel setFont:[HDComponentTools regularFont:30]];
        self.moneyLabel = [HDComponentTools labelSizeFit:self.moneyLabel];
        [self addSubview:_moneyLabel];
        
        [_moneyLabel mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(_moneyTitle.mas_bottom).offset(5);
            make.centerX.equalTo(_moneyTitle.mas_centerX);
        }];
    }
    return _moneyLabel;
}
ringa_lee
ringa_lee

ringa_lee

répondre à tous(2)
伊谢尔伦

layoutSubviews est appelé lorsque le cadre de l'uiview change. Cela se produira certainement si vous utilisez des contraintes pour adapter la taille de l'uilabel.

大家讲道理

Les LayoutSubViews écrivent généralement le cadre directement

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal