Swift - 找出哪个表格 View 单元格占据了大部分屏幕

标签 swift uitableview

我有这个表格 View ,其表格 View 单元格具有屏幕的宽度和高度。每个显示一个图像。 当您滚动表格 View 时,您可以让一个表格 View 单元格占据整个屏幕。或者最多您可以同时在应用程序的屏幕上看到 2 个表格 View 单元格。 我的问题是:有什么方法可以找出 2 个表格 View 单元格中的哪个占用的屏幕高度比另一个高?

最佳答案

这是找出哪个单元格可见度超过 60% 的简单方法。

func scrollViewDidScroll(scrollView: UIScrollView) {

    checkWhichVideoToEnable()
}

func checkWhichVideoToEnable() {

    for cell in tableView.visibleCells as [UITableViewCell] {

        if cell.isKindOfClass(UITableViewCell) {

            let indexPath = tableView.indexPathForCell(cell)
            let cellRect = tableView.rectForRowAtIndexPath(indexPath!)
            let superView = tableView.superview

            let convertedRect = tableView.convertRect(cellRect, toView: superView)
            let intersect = CGRectIntersection(tableView.frame, convertedRect)
            let visibleHeight = CGRectGetHeight(intersect)

            if visibleHeight > self.view.bounds.size.height * 0.6 {  // only if 60% of the cell is visible.

                //cell is visible more than 60%
                print(indexPath?.row) //your visible cell.
            }
        }
    }
}

引用自HERE .

关于Swift - 找出哪个表格 View 单元格占据了大部分屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34899689/

相关文章:

swift - 如何在 SWIFT 的 UITableViewController 中切换单元格?

ios - 使用observeForSingleEventOfType 崩溃

arrays - 无法删除核心数据数据库的所有当前元素

iphone - NSFetchedResultsController : Fill TableView with fetched entity and its related entity

objective-c - UITableViewCell 和消失的分隔符

iphone - UITableView 如何一次显示两个不同的数组?

ios - 重绘时未清除 UIBezierPath

swift - 如何在 Swift 中从 CloudKit 中删除 Assets ?

ios - 用覆盖层覆盖 UIAppDelegate 的窗口使用户在显示时无法触摸 UIActivityViewController 的扩展

ios - Swift 的 NSURLRequest 问题