在视图控制器中隐藏/显示控件
hide/ show controls in View controllers
我的应用程序收集用户的输入,因此充满了标签、文本框和按钮,我必须根据特定条件显示或隐藏一组标签和文本框。
为了完成它,我做了以下事情。
- 为所有控件设置固定高度(比如 30)
- 在每个控件上设置高度限制并在 ViewController
中创建高度限制的出口
- 根据场景以编程方式更改 heightConstraint.constant 值(介于 0.0 和 30.0 之间)。
这样编程,如果布局有任何变化,对我来说很难。 (即,如果用户请求 add/remove 来自视图控制器的任何特定控件)。
我正在使用自动布局约束。谁能建议是否有更好的方法来实现我的目标。
我正在使用 IOS9 和 Swift。
非常感谢。
无需将 IBOutlets 设置为您可能需要隐藏的所有视图的高度限制,您只需使用 UIViews 的 hidden
属性 来 hide/show 视图。
如果您需要视图为其他视图制作 space,您可以设置一个简单的动画并将视图移出屏幕边界。您可能会遇到布局限制问题,但从 UI/UX 的角度来看,这肯定是值得的。
此外,如果您知道不再需要某个视图,您甚至可以从它的父视图中删除该视图。
您是否考虑过为此使用 table?它具有插入和删除行的机制,并会为您管理布局 - 您唯一需要关心的部分是单元格的内容。
对于这种情况,您可以将 UITableViewController 与静态单元格一起使用。
对于 hide/show 行或部分,您可以在 tableView:heightForRowAtIndexPath
方法中更改大小。
UITableViewController 自动管理布局,使用静态单元格,您甚至可以为所有控件创建插座。
我的应用程序收集用户的输入,因此充满了标签、文本框和按钮,我必须根据特定条件显示或隐藏一组标签和文本框。
为了完成它,我做了以下事情。
- 为所有控件设置固定高度(比如 30)
- 在每个控件上设置高度限制并在 ViewController 中创建高度限制的出口
- 根据场景以编程方式更改 heightConstraint.constant 值(介于 0.0 和 30.0 之间)。
这样编程,如果布局有任何变化,对我来说很难。 (即,如果用户请求 add/remove 来自视图控制器的任何特定控件)。
我正在使用自动布局约束。谁能建议是否有更好的方法来实现我的目标。
我正在使用 IOS9 和 Swift。
非常感谢。
无需将 IBOutlets 设置为您可能需要隐藏的所有视图的高度限制,您只需使用 UIViews 的 hidden
属性 来 hide/show 视图。
如果您需要视图为其他视图制作 space,您可以设置一个简单的动画并将视图移出屏幕边界。您可能会遇到布局限制问题,但从 UI/UX 的角度来看,这肯定是值得的。
此外,如果您知道不再需要某个视图,您甚至可以从它的父视图中删除该视图。
您是否考虑过为此使用 table?它具有插入和删除行的机制,并会为您管理布局 - 您唯一需要关心的部分是单元格的内容。
对于这种情况,您可以将 UITableViewController 与静态单元格一起使用。
对于 hide/show 行或部分,您可以在 tableView:heightForRowAtIndexPath
方法中更改大小。
UITableViewController 自动管理布局,使用静态单元格,您甚至可以为所有控件创建插座。