如何在ios swift表单中的控件之间添加控件
Posted
技术标签:
【中文标题】如何在ios swift表单中的控件之间添加控件【英文标题】:how to add controls between controls in ios swift form 【发布时间】:2015-08-21 06:36:47 【问题描述】:这是我页面的默认视图:
如果用户选择性别为“男性”,我需要在性别和年龄之间再添加一个字段,如下所示:
选择男性后,如果再次重置性别框,我需要将所有其他控件移至底部。需要隐藏新添加的文本框,并将其他控件上移回原来的位置。
如何在 ios swift 中做到这一点,如果我在其间添加 textview,在自动布局中我需要注意哪些步骤?
【问题讨论】:
您是如何创建上述控件的?在 TableView 中还是在 UIView 中? @ChetanPrajapati,在 UIVIew 比使用自动布局更容易。看我的回答 我喜欢它的一个库,但它是在 Objective-c 中的,如果你知道任何这样的库,请在此处发布。 github.com/xmartlabs/… 我想要一些类似 ios9 的 Stack Views 的东西 【参考方案1】:如果您将文本字段放置在 tableview 单元格中,那么您可以添加/隐藏所需的单元格,只需将其插入源代码并将其从源代码中删除
【讨论】:
这将负责屏幕旋转和自动调整大小?我需要一个简单的方法来做到这一点。如果您对此有任何链接,请在此处发布。提前谢谢你。【参考方案2】:我不喜欢这种形式,它看起来并不“原生”。 要实现这一点,您可以创建一个动态表格,当用户点击一个单元格时,您可以在确定的位置插入或删除额外的行,甚至可以使用本机动画之一:
[self.models removeObjectAtIndex:indexPath.row];
[self syncModel];
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
其他选项是创建一个静态表格并以编程方式显示和隐藏单元格
【讨论】:
【参考方案3】:根据您的评论,您正在使用 UIView。
所以,
当您将 UIView 的 Gender 增加高度更改为(textControl 的高度 + gap b/w 2 个控件)时
将 Gender Control(仅 Y 位置)后所有控件的 Center 更改为(textControl + gap b/w 2 个控件的高度)[对于所有控件]
创建/(隐藏/显示)移动控件并将 Center 属性设置为 Gender Control 之后(Height + Gap b/w 2 控件)
在 uiview.animation 中进行上述任务,这样每次都可以更改。
【讨论】:
感谢回复,我需要一个正确的方法来做,这种方法对我来说很复杂,在页面动态控件较多的情况下。做这个动态表单应用程序的正确方法是什么?我从这里知道的答案,我需要为此使用表格视图。但我需要一些例子。如果可能,请发布一些链接或示例。 iosmadesimple.blogspot.in/2013/04/… 和 ***.com/questions/23821088/…【参考方案4】:在您的UIView
中创建 2 个子视图
一个视图放置在性别文本视图旁边并将其高度设置为“0”,因此第一个视图的框架为 (20,100,150,0) 添加移动文本视图,并在第二个视图中添加年龄和 blabla 等。
当男性选择性别时,更改第一个视图的框架,使其可能为 (20,100,150,50),并更改第二个视图的“Y”。
【讨论】:
嗨@Rinju Jain,当我有更多控件和动态控件时,更新所有控件已完成,该动态控件依赖于另一个动态控件。 在您的第一个视图中动态添加文本字段,以便自动增加高度。【参考方案5】:您可以使用自动布局来实现这一点。我在我的一个项目中实现了同样的目标。
您需要执行以下操作
1> 当您使用 xib 或通过代码创建视图时,也可以为移动设备创建文本字段。 2> 将文本文件高度约束设为 0 3> 隐藏该字段 4> 为移动文本文件的 0 高度约束创建 IBOutlet。 5> 在选择性别时,将此高度限制从 0 更改为您的文本文件的 DEFAULT_HEIGHT。 6> 所有其他文本字段将自动调整
这是我的示例代码
[self.dropOffLocationHeightConstraint setConstant:64.0];
[self.dropOffLocationView setHidden:FALSE];
[self.view layoutIfNeeded];
【讨论】:
以上是关于如何在ios swift表单中的控件之间添加控件的主要内容,如果未能解决你的问题,请参考以下文章
iOS/Swift:如何在 AVPlayerViewController 的播放控件中添加共享按钮?