iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 自动布局导致无限的layoutSubviews循环大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我真的很困惑,当我在子视图上使用自动布局时,layoutSubview方法无限循环.

我所做的只是:

- (id)init
{
    self = [super init];
    if(self)
    {
        self.backgroundColor = [UIColor grayColor];
        _imageView = [[UIImageView alloc] init];
        _imageView.translatesAutoresizingMaskIntoConstraints = NO;
        [self addSubview:_imageView];

        [self applyConstraints];

    }
    return self;
}

-(void)applyConstraints
{
    [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_imageView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_imageView)]];
    [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_imageView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_imageView)]];
}

这会在layoutSubviews中导致无限循环.实际上,即使没有调用applyConstraints,也会发生循环,阻止它发生的唯一方法是将’translatesAutoresizingMaskIntoConstraints’设置为YES.

有没有人遇到/解决过这个问题?

更新
为了澄清,这是一个UIView子类,它在视图控制器中使用.视图本身不使用自动布局,而是在初始化后将帧设置为旧式.

解决方法

这可能对你有帮助.

layoutSubviews将被调用

>当视图的帧发生变化时>当从superview中删除视图时,它将在superview上调用>在UIScrollview中,滚动期间.>将视图添加到superView时.>在方向改变期间.

大佬总结

以上是大佬教程为你收集整理的ios – 自动布局导致无限的layoutSubviews循环全部内容,希望文章能够帮你解决ios – 自动布局导致无限的layoutSubviews循环所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: