gpt4 book ai didi

ios - 在 Swift 中,如何在发生方向时查看表格 View 的相同单元格?

转载 作者:可可西里 更新时间:2023-11-01 01:01:46 25 4
gpt4 key购买 nike

我有一个 TableView ,其单元格和单元格内容是通过自动布局排列的。当方向发生时,我还通过在此函数中返回不同的值来更改单元格高度:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if (UIApplication.sharedApplication().statusBarOrientation.isLandscape.boolValue == true) {
// cell heights in landscape
if (...) {
return 100
} else
return 80
}
// cell heights in portrait
if (...) {
return 220
} else if (... ) {
return 240
} else {
return 250
}
}

当发生定向时,除了可见单元格不同之外,一切正常。例如,假设我总共有 30 个单元格。当我在纵向模式下滚动表格时,我看到单元格 8、9、10、11。当我将设备旋转到横向模式时,我看到单元格 20、21、22、23、24。

在这种情况下,我实际上希望在我旋转到横向模式后立即看到 8、9、10、11,这是考虑到 UI 设计的友好行为。

根本原因是因为发生方向时单元格的高度发生了变化。有什么方法可以调整表格 View ,以便在设备方向发生变化时可以看到相同的单元格?

最佳答案

你总是可以这样做:

override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
yourTableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Top, animated: false)
}

要获取当前可见的顶部单元格 NSIndexPath,您可以这样做:

yourTableView.indexPathsForVisibleRows![0]

indexPathsForVisibleRows 返回 UITableView 中可见单元格的 NSIndexPaths 数组,索引为 0 的第一个是顶部的。

关于ios - 在 Swift 中,如何在发生方向时查看表格 View 的相同单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34552999/

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