Ссылка на подкласс UITableView
Почему UITableView перескакивает при прокрутке? Можете ли вы мне помочь?
для того, кто помогает мне, я начинаю и награждаю позже ДРУГОЙ щедрость 100: -)
Как выполнить некоторые изменения на UITableView
вместе с настройкой contentOffset
?
Вот как я установил свой scrollDisplayLink
:
scrollDisplayLink = CADisplayLink(target: self, selector: Selector("scrollTable"))
scrollDisplayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
cellForCurrentIndexPath?.hidden = true
а затем внутри scrollTable
выполняю следующие действия:
func scrollTable() {
var newOffset = CGPointMake(currentContentOffset.x, currentContentOffset.y + scrollRate * 10)
if currentContentSize.height < frame.size.height {
newOffset = currentContentOffset
} else if newOffset.y > currentContentSize.height - frame.size.height {
newOffset.y = currentContentSize.height - frame.size.height
} else if newOffset.y < 0 {
newOffset = CGPointZero
}
contentOffset = newOffset
if coveredIndexPath != nil && coveredIndexPath! != currentIndexPath! {
let verticalPositionInCoveredCell = longPressGestureRecognizer.locationInView(cellForRowAtIndexPath(coveredIndexPath!)).y
if direction == .Down && heightForCoveredCell - verticalPositionInCoveredCell <= heightForCurrentCell / 2 {
print("moved down")
beginUpdates() //1
moveRowAtIndexPath(currentIndexPath!, toIndexPath: coveredIndexPath!) //2
currentIndexPath = coveredIndexPath //3
endUpdates() //4
}
}
}
Прокрутка отлично, если строки 1-4
не комментируются или я отключен UITableViewAutomaticDimension
. Когда они не комментируются, таблица перескакивает, когда currentContentOffset
отличается от 0
при прокрутке. Почему так происходит? Это проблема с потоками или чем-то еще?
Примечание:
UITableView
работает с UITableViewAutomaticDimension
:
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}