gpt4 book ai didi

ios - 另一个 uiscrollview 自动布局问题

转载 作者:行者123 更新时间:2023-11-29 01:32:53 24 4
gpt4 key购买 nike

我有一个简单解释但令我困惑的问题。

我在更改 ScrollView 内容大小时遇到​​问题,同时只需点击带有以下代码的按钮

if condition {
scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, 1000 )
button.setTitle("SHOW LESS", forState: .Normal)
} else {
scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, 200 )
button.setTitle("SHOW MORE", forState: .Normal)
}

我正在使用自动布局,我知道在 View 生命周期期间尚未设置框架会出现问题并导致事故,但此代码是在 IBAcition 中执行的。奇怪的是,如果内容大小大于 200 开始,它会收缩。它永远不会增长到 1000。我唯一的猜测是它与链接到按钮的约束有关,这些约束没有什么特别的,只是居中并垂直固定但我不知道从哪里开始调试它。此外,当我删除 set title call 时,它确实增长到 1000!我一辈子都弄不明白为什么设置标题会影响内容大小。有什么想法吗?

最佳答案

解决这个问题的最简洁的方法可能是永远不要自己计算 contentSize。当您将所有 View 添加到您的 UIScrollview 时,它们所具有的约束应该明确地确定 contentSize。然后,UIScrollView 将自动调整其大小。

当您需要在代码中更改某些大小/边距等时,您可能应该为约束创建一个 IBOutlet 并更改 constraint.constant。 ScrollView 将自动调整 contentSize。

现在有一件棘手的事情:ScrollView 不会减小 contentSize,如果这意味着 ScrollView 中的 View 变得不可见。 (我假设当调用 showLess 时,您正在从 ScrollView 的 contentView 中移出一些东西)您可以做的是创建一个 Constraint 来设置 View 和 ScrollView 底部之间的间距。然后您可以将此间距设置为负值(因此它移动到 ScrollView 下方)并将 View 设置为隐藏。我认为这会解决您的问题。

关于ios - 另一个 uiscrollview 自动布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33272348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com