gpt4 book ai didi

ios - 为什么在使用分段控件时 UITableView contentOffset 会发生变化?

转载 作者:搜寻专家 更新时间:2023-10-31 08:22:48 25 4
gpt4 key购买 nike

我有一个 UITableView它的导航栏中有一个分段控件。我使用同一个 TableView 根据分段控件的选定索引显示 3 组不同的数据。我现在试图保留每个分割选项的滚动位置,这样看起来每个分割选项都有一个表格(即每个选择的结果都有独立的滚动位置)。

为此,我存储了一个 CGPoint每个状态的变量,设置contentOffset when the selected segment index changes.该变量用于在段更改时设置 TableView 的内容偏移量。

然而,这似乎是contentOffset当所选段索引更改而没有对表中的位置进行任何可见更改时,值就会发生变化。就像内容偏移量的 0 位置在移动,这使得我的存储值现在是错误的。

当我的 Controller 包含以下方法时:

override func viewDidLoad() {
// set up the view here...

print(tableView.contentOffset)
}

@IBAction func selectedSegmentChanged(sender: AnyObject) {
print(tableView.contentOffset)

// code to change the data shown in the table view...
}

我在加载 View 时记录了以下内容:

(0.0, 0.0)

但在更改段后我得到:

(0.0, -64.0)

所有状态都显示表格 View 滚动到完全相同的位置,即 - 在顶部。

此行为使我无法正确存储滚动位置,因为内容偏移的“含义”似乎正在发生变化。


编辑:内容偏移实际上是在 viewDidLoad() 之间调整的和 viewDidAppear() ,很可能是由于内容插入。所以我现在第一次存储内容偏移值viewDidAppear()被称为。

最佳答案

这个问题通常是由 View Controller 上的属性引起的。将其设置为 false 应该可以修复它。

self.automaticallyAdjustsScrollViewInsets = false

也可以从 Storyboard 中设置。只需选择 View Controller 并取消选中 Adjusts scroll view insets

关于ios - 为什么在使用分段控件时 UITableView contentOffset 会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583593/

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