在ScrollView中隐藏视图后如何移除空白空间?

3

我有一个包含动态视图(标签、图片视图)的UIScrollview。我隐藏了一些视图,但是白色的空白空间还在。我该如何去除它?

我尝试过以下代码,但是没有用:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:myView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:0]];

文件外观布局:
-View

 -ScrollView

  -UIImageView

  -UIButton

  -UIButton

  -UILable

  -UILable

  -UIButton

  -UILable

  -UILable

1
你能提供任何截图吗? - Abhishek Mitra
使用layoutsubviews方法,并在此方法中更改您的约束。如果不起作用,请尝试在layoutIfNeeded中执行相同操作。这将有所帮助。 - dahiya_boy
请在ScrollView下使用一个视图(view),并将您所有其他对象放置在该视图中。 - Abhishek Mitra
@AbhishekMitra 请查看我添加的问题。所有视图都在ScrollView中。 - Sanjay Mangaroliya
使用UITableView来实现你想要的效果怎么样?这样做,你可以通过将数据源绑定到tableView来“隐藏”视图,然后更改数据源,使tableView仅显示数据源中的内容。毕竟,UITableViewUIScrollView的子类,并且为你提供了许多免费的行为来实现你想要的效果。 - cohen72
请使用以下控件:
  • View(视图)
  • ScrollView(滚动视图)
  • UIView(视图)
  • UIImageView(图像视图)
- Abhishek Mitra
1个回答

1

仅仅隐藏视图是没有用的,因为它仍然会占用空间。你有几个选择: 1. scrollView中的每个视图都应该有一个高度约束,当需要隐藏时应该将其设置为0。然后你应该调用

[scrollView setNeedsLayout];
[scrollView layoutIfNeeded];

你可以使用以下代码从scrollView中移除不需要的视图:
  1. 通过调用 [viewToHide removeFromSuperview];

1
谢谢您的回答。如果我使用 [viewToHide removeFromSuperview]; ,它会删除空格 @CrazyJoeLv - Sanjay Mangaroliya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接