【问题标题】:how to expand and collapse a UIView in ScrollView?如何在 ScrollView 中展开和折叠 UIView?
【发布时间】:2018-11-02 07:08:23
【问题描述】:

我在viewController 中创建了一个弹出窗口,在我的弹出窗口中有一个scrollview,我对button click 有一些看法。我想折叠一个包含一些视图本身和另一个 button click 的视图。我想扩大视野。我已经尝试了下面的代码来实现它,但不是折叠视图并想要隐藏其他视图。

为了折叠,我使用了下面的代码:

        var newFrame : CGRect = view.frame
        newFrame.size.height = 0

        UIView.animate(withDuration: 0.25, animations:{
            self.issueBox.frame = newFrame;
            self.issueBox.isHidden = true

        },completion : nil)

为了展开:

            var newFrame : CGRect = view.frame
        newFrame.size.height = 232

        UIView.animate(withDuration: 0.25, animations:{
            self.issueBox.frame = newFrame;
            self.issueBox.isHidden = false

        },completion : nil)

在我的故事板中,我也为所有视图设置了约束。包括我要折叠的那个。

那么如何折叠和展开视图? 这是我在 viewController 中的视图:

我想在点击“折叠/展开”按钮时折叠红色框,然后点击“确定”按钮,在“折叠/展开”按钮下方出现!

【问题讨论】:

  • 你能分享截图或一些图片吗?
  • @EmreÖnder 我添加了截图!

标签: ios swift uiview uiscrollview


【解决方案1】:

动画化要折叠的视图的高度约束(在 0 和所有子视图的计算高度之间切换)。确保其子视图没有 top|height|bottom 约束,因为这会导致布局问题 - 改为向子视图添加顶部和高度或底部和高度约束。确保您正在制作动画的视图将Clip to Bounds 设置为true。有约束时避免动画帧。希望对您有所帮助!

【讨论】:

  • 您的回答令人困惑——您说不要将顶部/底部/高度约束添加到子视图中,但是您说下一句将它们添加到子视图中?你能澄清一下我们应该向哪个视图添加约束吗?
  • 嗨@Mocha,我说为子视图添加顶部和高度或底部和高度约束,这允许子视图内容在超级视图折叠时不会缩小并平滑隐藏
猜你喜欢
  • 2013-07-18
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 2018-12-13
  • 2013-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多