【发布时间】:2016-08-03 16:12:12
【问题描述】:
我有一个UITableView,它的导航栏中有一个分段控件。我使用相同的表格视图来显示 3 组不同的数据,基于分段控件的选定索引。我现在正在尝试保留每个段选项的滚动位置,以便每个段选项似乎都有一个表(即每个选择的结果都有独立的滚动位置)。
CGPoint变量,它们在选定的段索引更改时为设置为contentOffset。该变量用于在段更改时设置表格视图的内容偏移量。
However, it seems like the contentOffset value changes when the selected segment index changes without any visible change to the position within the table.就像内容偏移量的 0 位置在移动,这使我存储的值现在错误。
当我的控制器包含以下方法时:
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...
}
当视图加载时,我得到以下记录:
(0.0, 0.0)
但在更改片段后我得到:
(0.0, -64.0)
所有状态都显示表格视图滚动到完全相同的位置,即顶部。
这种行为使我无法正确存储滚动位置,因为内容偏移的“含义”似乎正在发生变化。
编辑:内容偏移量实际上在viewDidLoad() 和viewDidAppear() 之间调整,很可能是由于内容插入。所以我现在存储第一次调用viewDidAppear() 时的内容偏移值。
【问题讨论】:
标签: ios swift uitableview uiscrollview uikit