Swift,iOS - 单击以显示文本字段时按钮向上移动?然后搬回去?
Posted
技术标签:
【中文标题】Swift,iOS - 单击以显示文本字段时按钮向上移动?然后搬回去?【英文标题】:Swift, iOS - have button move up when clicked to display text field? Then move back? 【发布时间】:2016-06-06 21:32:42 【问题描述】:我知道如何在 sprite kit 之类的东西中实现这一点,但只有一个普通的 ViewController 我有点迷茫 - 现在我在我的 xib 文件上设置了我的按钮和我的 UITextfield。现在,当单击按钮时,我的文本字段从隐藏变为不隐藏,这很棒。
问题是我需要让我的按钮向上滑动(如动画向上)以在单击时“显示”文本字段。如在文本字段中将在按钮下方。单击另一个按钮时,我希望该按钮滑回其原始位置。我不知道如何实现这些动画。
这是我需要的图片:
所以蓝色按钮会在点击时触发向上移动。然后,如果按下另一个按钮,蓝色按钮将移回文本字段上的原始位置。
我怎样才能做到这一点?
【问题讨论】:
会一直是这样的 4 个部分,还是可以有可变数量的部分? 总是 4 - 不可变 【参考方案1】:如果您没有在 UITableView
中显示这些,可以尝试以下选项:
-
将您的 .xib 设置为所有可能的视图都处于“扩展”状态。为将要显示的视图提供高度约束(除了正确布局视图所需的其他视图),然后在视图控制器中为这些高度约束创建一个出口。此外,在视图控制器中存储您希望视图扩展高度的引用。
在视图控制器的
viewDidLoad
中,您将那些高度约束的constant
值设置为0。这将导致这些视图有效地消失,并且您的其他视图应该根据它们的约束来填补它们留下的空白.
当您按下其中一个按钮时,如果您希望它们隐藏,您将通过将其高度约束设置为 0 来更新哪些视图应该可见,或者如果您希望它们显示,则设置为您之前保存的值。高度更新后,调用
UIView.animateWithDuration(howLongTheAnimationLasts)
self.view.layoutIfNeeded()
这应该动画高度值的变化。
或者,您可以尝试将您的选项放入UITableView
并使用tableView:heightForRowAtIndexPath:
更改它们的高度,并在它们的高度应该改变时重新加载单元格。
【讨论】:
谢谢,不过我先尝试了另一种方法.. 你看看***.com/questions/37668784/… 我尝试实施您的解决方案 - 我没有广泛使用约束,并且高度约束同时影响按钮和文本字段,导致两者都消失。还有其他想法吗? 您能否提供一个示例,说明如何在不影响所有其他按钮的情况下更改高度限制? 你能截屏一下你是如何为可扩展视图设置约束的吗?具体来说,IB 中的 Size Inspector 面板列出了约束(带有标尺图标的选项卡)。可能是由于您设置约束的方式,当您更改一个视图的高度时,其他视图不知道如何正确调整自己的大小。以上是关于Swift,iOS - 单击以显示文本字段时按钮向上移动?然后搬回去?的主要内容,如果未能解决你的问题,请参考以下文章
当我在 swift 中单击单元格中的文本字段时,键盘没有出现