ios - 在动画 block UIStackView 中隐藏排列 subview

标签 ios swift layout uistackview

我正在尝试使用堆栈 View 创建一个可扩展 View ,非常容易,因此当用户单击StackView的第一个arrangedSubview时,第二个的isHidden属性被设置为 false,因此它具有动画效果。

该功能可以运行,但动画效果还差得远。每次将 isHidden 属性设置为 false 时,排列的 subview 不会从第一个排列的 subview 下方进行动画处理,而是从屏幕顶部进行动画处理。

关于如何解决这个问题有什么想法吗?我正在使用这段简单的代码,如 Apple 的 UIStackView 文档中所述:

UIView.animate(withDuration: animationDuration) {
        let bodyView = self.stackView.arrangedSubviews[1]
        bodyView.isHidden = !self.isExpanded
        self.expandArrowImageView.transform = CGAffineTransform(rotationAngle: angle)
    }

最佳答案

您需要在 View 出现后调用代码,即在 viewDidAppear 中。当您尝试在 View 出现之前调用它时,即在 viewDidLoad 中,您现在看到的动画行为就会发生

关于ios - 在动画 block UIStackView 中隐藏排列 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221256/

相关文章:

html - 调整窗口大小时如何使图像和文本在 HTML 中对齐?

cocoa - Cocoa 文件操作的线程语义是什么?例如NSData 读/写方法

objective-c - 将.app集成到另一个应用程序的UIViewcontroller中

iOS 9 ATS 白名单

ios - 文本字段占位符居中并更改颜色

swift - 检查隐私 - 照片库添加使用说明仅适用于 iOS

ios - Swift:字符串 url 编码没有按预期工作

swift - 如何快速连接到 Socket.IO?

android - Android中如何缩放布局

ios - 如何在 Xcode 上管理登录和注销过程