子视图高度调整大小

杰森·贝斯托(Jason Bestor)

我有2个子视图的UIView。由分段控件控制,一次只能看到一个子视图。子视图具有不同的高度。如何将UIView高度设置为取决于可见子视图?

编辑-以下代码适用于分段控件的初始来回顺序,但随后保持在30px。调试器显示存在一个满足约束条件的问题,但是我不确定如何更正它。

错误:

无法同时满足约束条件。以下列表中的约束中至少有一个是您不想要的约束。尝试以下操作:(1)查看每个约束,并尝试找出不期望的约束;(2)查找添加了一个或多个不必要约束的代码并进行修复。(注意:如果看到的是您不了解的NSAutoresizingMaskLayoutConstraints,请参阅有关UIView属性translationsAutoresizingMaskIntoConstraints的文档)

("<NSLayoutConstraint:0x7f84f84b3b80 V:[UIView:0x7f84f852bc60(60)]>",
"<NSLayoutConstraint:0x7f84f8494d20 V:[UIView:0x7f84f852bc60(30)]>")

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f84f84b3b80 V:[UIView:0x7f84f852bc60(60)]>

代码:

- (IBAction)segmentValueChanged:(UISegmentedControl *)sender {
switch (sender.selectedSegmentIndex) {
    case 0:
        [_ParentView setTranslatesAutoresizingMaskIntoConstraints:NO];
        [_ParentView addConstraint:[NSLayoutConstraint
                                   constraintWithItem:_ParentView
                                   attribute:NSLayoutAttributeHeight
                                   relatedBy:NSLayoutRelationEqual
                                   toItem:nil
                                   attribute:NSLayoutAttributeNotAnAttribute
                                   multiplier:1.0
                                   constant:30.0]];

        self.1stView.hidden = NO;
        self.2ndView.hidden = YES;
        break;
    case 1:
        [_ParentView setTranslatesAutoresizingMaskIntoConstraints:NO];
        [_ParentView addConstraint:[NSLayoutConstraint
                                  constraintWithItem:_ParentView
                                  attribute:NSLayoutAttributeHeight
                                  relatedBy:NSLayoutRelationEqual
                                  toItem:nil
                                  attribute:NSLayoutAttributeNotAnAttribute
                                  multiplier:1.0
                                  constant:60.0]];

        self.1stView.hidden = YES;
        self.2ndView.hidden = NO;
        break;
    default:
        break;
    }
}

谢谢

杰森·贝斯托(Jason Bestor)

它可能不是最干净的,但是我能够使以下代码正常工作。感谢@AJB的帮助。

- (IBAction)segmentValueChanged:(UISegmentedControl *)sender {
switch (sender.selectedSegmentIndex) {
    case 0:
        self.1stView.hidden = NO;
        self.2ndView.hidden = YES;

        _1stconstraint = [NSLayoutConstraint
                       constraintWithItem:_ParentView
                       attribute:NSLayoutAttributeHeight
                       relatedBy:NSLayoutRelationEqual
                       toItem:nil
                       attribute:NSLayoutAttributeNotAnAttribute
                       multiplier:1.0
                       constant:30.0];

        [_ParentView setTranslatesAutoresizingMaskIntoConstraints:NO];

        [_ParentView removeConstraint:_2ndconstraint];
        [_ParentView addConstraint:_1stconstraint];

        break;
    case 1:
        self.1stView.hidden = YES;
        self.2ndView.hidden = NO;

        _2ndconstraint = [NSLayoutConstraint
                                  constraintWithItem:_ParentView
                                  attribute:NSLayoutAttributeHeight
                                  relatedBy:NSLayoutRelationEqual
                                  toItem:nil
                                  attribute:NSLayoutAttributeNotAnAttribute
                                  multiplier:1.0
                                  constant:60.0];

        [_ParentView setTranslatesAutoresizingMaskIntoConstraints:NO];

        [_ParentView removeConstraint:_1stconstraint];
        [_ParentView addConstraint:_2ndconstraint];

        break;
    default:
        break;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

隐藏互斥子视图后,调整容器UIView的大小以匹配可见子视图的高度

来自分类Dev

如何在XIB中基于子视图的大小调整超级视图的高度?

来自分类Dev

是否可以调整 UITabbarcontroller 的子视图大小?

来自分类Dev

使用 AutoLayout 调整子视图的大小

来自分类Dev

iOS:通过删除子视图来调整子视图的大小

来自分类Dev

调整viewpager内部的视图大小,以弥补标签高度

来自分类Dev

如何根据UITextView子视图的大小调整UITableViewCell的大小?

来自分类Dev

根据子视图的内容大小调整滚动视图

来自分类Dev

超级视图加载完成后调整子视图的大小

来自分类Dev

更改子视图的约束后如何调整父视图的大小?

来自分类Dev

如何在iOS中调整子视图的高度

来自分类Dev

调整UITableViewCell高度的大小

来自分类Dev

如何在Swift中使用视图调整子图层的大小?

来自分类Dev

Mac App:无法自动调整子视图的大小

来自分类Dev

在UICollectionView布局转换中完善子视图的大小调整

来自分类Dev

如何正确调整SKView子视图和SKScene的大小

来自分类Dev

如何在Xcode中调整UIStackView的子视图大小?

来自分类Dev

子视图调整大小时,iOS LayoutSubviews被多次调用

来自分类Dev

调整scrollViewDidZoom中所有子视图的大小

来自分类Dev

使用自动布局调整子视图以保持其大小

来自分类Dev

子视图调整大小时,iOS LayoutSubviews被多次调用

来自分类Dev

如何在UIScrollView中调整子视图的大小?

来自分类Dev

动画约束时子视图无法正确调整大小

来自分类Dev

调整UITextView的大小-高度未调整

来自分类Dev

调整窗口高度时调整图像的大小

来自分类Dev

调整窗口高度时调整图像的大小

来自分类Dev

子视图高度相等

来自分类Dev

调整窗口大小时,页脚线和视图的高度不断变化

来自分类Dev

带有 2 个多行 UILabels/自调整大小的集合视图单元格的 UICollectionViewCell 的高度

Related 相关文章

  1. 1

    隐藏互斥子视图后,调整容器UIView的大小以匹配可见子视图的高度

  2. 2

    如何在XIB中基于子视图的大小调整超级视图的高度?

  3. 3

    是否可以调整 UITabbarcontroller 的子视图大小?

  4. 4

    使用 AutoLayout 调整子视图的大小

  5. 5

    iOS:通过删除子视图来调整子视图的大小

  6. 6

    调整viewpager内部的视图大小,以弥补标签高度

  7. 7

    如何根据UITextView子视图的大小调整UITableViewCell的大小?

  8. 8

    根据子视图的内容大小调整滚动视图

  9. 9

    超级视图加载完成后调整子视图的大小

  10. 10

    更改子视图的约束后如何调整父视图的大小?

  11. 11

    如何在iOS中调整子视图的高度

  12. 12

    调整UITableViewCell高度的大小

  13. 13

    如何在Swift中使用视图调整子图层的大小?

  14. 14

    Mac App:无法自动调整子视图的大小

  15. 15

    在UICollectionView布局转换中完善子视图的大小调整

  16. 16

    如何正确调整SKView子视图和SKScene的大小

  17. 17

    如何在Xcode中调整UIStackView的子视图大小?

  18. 18

    子视图调整大小时,iOS LayoutSubviews被多次调用

  19. 19

    调整scrollViewDidZoom中所有子视图的大小

  20. 20

    使用自动布局调整子视图以保持其大小

  21. 21

    子视图调整大小时,iOS LayoutSubviews被多次调用

  22. 22

    如何在UIScrollView中调整子视图的大小?

  23. 23

    动画约束时子视图无法正确调整大小

  24. 24

    调整UITextView的大小-高度未调整

  25. 25

    调整窗口高度时调整图像的大小

  26. 26

    调整窗口高度时调整图像的大小

  27. 27

    子视图高度相等

  28. 28

    调整窗口大小时,页脚线和视图的高度不断变化

  29. 29

    带有 2 个多行 UILabels/自调整大小的集合视图单元格的 UICollectionViewCell 的高度

热门标签

归档