在iOS11中,隐藏动画在UIStackView以内的行为已经改变,但我在任何地方都找不到这方面的文档.

iOS 10

iOS 10 animation

iOS 11

iOS 11 animation

这两个文件中的代码如下所示:

UIView.animate(withDuration: DiscoverHeaderView.animationDuration,
                       delay: 0.0,
                       usingSpringWithDamping: 0.9,
                       initialSpringVelocity: 1,
                       options: [],
                       animations: {
                            clear.isHidden = hideClear
                            useMyLocation.isHidden = hideLocation
                        },
                       completion: nil)

如何恢复iOS 11上以前的行为?

推荐答案

只是遇到了同样的问题. 修复方法是在动画挡路中添加stackView.layoutIfNeeded()%.其中stackView是您希望隐藏的物品的容器.

UIView.animate(withDuration: DiscoverHeaderView.animationDuration,
                   delay: 0.0,
                   usingSpringWithDamping: 0.9,
                   initialSpringVelocity: 1,
                   options: [],
                   animations: {
                        clear.isHidden = hideClear
                        useMyLocation.isHidden = hideLocation
                        stackView.layoutIfNeeded()
                    },
                   completion: nil)

我不确定为什么这突然成为iOS11中的一个问题,但公平地说,这一直是推荐的方法.

Ios相关问答推荐

不使用iOS 17修改器修改SWIFT用户界面视图

当包含UITextView的inputAccessoryView显示键盘时,iOS UITableView内容会出现UINavigationBar奇怪的错误

SWIFT-仅解码感兴趣的元素

清除/删除 NavigationController 中的多个 ViewController

当应用程序被杀死时是否还能获取位置?

如何创建装饰视图?

RFID scanner 的蓝牙服务 UUID?

使用 Objective-C 创建 iOS 框架

如何在 SwiftUI 中同时使用 LongPressGesture 和 ScrollView 中的滚动?

为什么@FetchRequest 在删除时不更新和重绘视图?

SwiftUI:同时拖动父视图和子视图,但手指分开

发生异常:需要 issuerId

SwiftUI:添加核心数据项时更新选项卡栏徽章

iOS,Swift 5,AppDelegate open url / .onOpenUrl - 如何找到调用我的自定义方案的调用应用程序

如何在不同设备的segment控制中管理文本大小(text size)?

iPhone 未连接.连接 iPhone 后 Xcode 将继续

核心数据 - 无法在路径加载优化模型

iOS在应用程序中下载并保存图像

xcode 5.1:libCordova.a 架构问题

错误 itms-90035 - Xcode