如何在 UINavigationController 的视图下为 UIView 设置动画
Posted
技术标签:
【中文标题】如何在 UINavigationController 的视图下为 UIView 设置动画【英文标题】:How can I animate a UIView underneath the UINavigationController's view 【发布时间】:2016-11-14 16:58:59 【问题描述】:现在我正在制作一个有时直接出现在 NavigationBar 下方的小横幅。这个 UIView 存在于我的应用程序中 UINavigationController 的子类中。
我想在视图消失时在导航栏上方和下方设置横幅视图的动画(而不是将其高度设置为 0 的动画,这可能会导致横幅的子视图出现古怪的事情)。但是,它总是在 navBar 顶部进行动画处理。
我尝试将我的视图发送到后面 (-sendSubviewToBack:) 但是,我并没有看到全部。然后我尝试了-bringSubviewToFront,并给它导航栏的视图。那也没用。
有什么想法吗?
【问题讨论】:
【参考方案1】:听起来你需要对你的层次结构更加慎重(它回溯得太远了)。这是关于如何更具体地展示您的展示位置的一个很好的答案。 How to send a UIView element backwards in Swift
具体来说,你想用
insertSubview(_:belowSubview:)
并将您的视图直接放在应该隐藏它的导航栏视图下方。
只是提示,您可以调出 UI 调试以获取更多帮助。
【讨论】:
知道了。我使用了 -bringSubviewToFront: 将导航栏向前移动。以上是关于如何在 UINavigationController 的视图下为 UIView 设置动画的主要内容,如果未能解决你的问题,请参考以下文章
在 UINavigationController 中设置时图像不显示
将 managedObjectContext 发送到 viewController 崩溃
ID:[...] 的 NSManagedObject 已失效
使用 UINavigationController 从另一个控制器更新或重新加载 UIViewController?