でこれを使用する場合はいくつかの調整が必要な場合がありますことスウィフトに実装上記のバリエーションです:セルの一部である
var cellRect = tableView.rectForRowAtIndexPath(indexPath)
if let superview = tableView.superview {
let convertedRect = tableView.convertRect(cellRect, toView:superview)
let intersect = CGRectIntersection(tableView.frame, convertedRect)
let visibleHeight = CGRectGetHeight(intersect)
}
visibleHeight
それは目に見えるものです。視認性に応じて表示する外観を変更する
var cellRect = tableView.rectForRowAtIndexPath(indexPath)
if let superview = tableView.superview {
let convertedRect = tableView.convertRect(cellRect, toView:superview)
let intersect = CGRectIntersection(tableView.frame, convertedRect)
let visibleHeight = CGRectGetHeight(intersect)
let cellHeight = CGRectGetHeight(cellRect)
let ratio = visibleHeight/cellHeight
}
- 上記の質問の状態として - このコードは、に含まれるべきである:表示されているセルの - 0と1の間の - 一のさらなるステップは、比率を計算するために添加することができますテーブルビューのUIScrollViewスーパークラスデリゲートUIScrollViewDelegateメソッドscrollViewDidScroll
ただし、スクロールするとセルにのみ影響します。すでに表示されているセルは影響を受けません。それらについては、同じコードをUITableViewDelegateメソッドdidEndDisplayingCellに適用する必要があります。
おかげでチームメイト、私はそれほど明白今、CGRectIntersectionを使用する方法について考えていません! –
うれしい – Catalin