Link to the subclass of UITableViewCome eseguire gli aggiornamenti su UITableView mentre si scorre usando CADisplayLink e UITableViewAutomaticDimension senza saltare?
Perché UITableView salta durante lo scorrimento? Puoi aiutarmi?
per chi mi aiuta comincio e premio in seguito ALTRO taglia di 100 :-)
come eseguire alcuni cambiamenti sulla UITableView
insieme con la sua impostazione contentOffset
?
Ecco come ho impostato il mio scrollDisplayLink
:
scrollDisplayLink = CADisplayLink(target: self, selector: Selector("scrollTable"))
scrollDisplayLink?.addToRunLoop(NSRunLoop.mainRunLoop(), forMode: NSRunLoopCommonModes)
cellForCurrentIndexPath?.hidden = true
, quindi entro scrollTable
Io seguenti cose:
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
}
}
}
scorrimento è bene a meno linee 1-4
sono commentate o disattivo UITableViewAutomaticDimension
. Quando non vengono commentati, la tabella salta quando currentContentOffset
è diverso da 0
durante lo scorrimento. Perché succede così? È un problema con discussioni o qualcos'altro?
NOTA:
UITableView
lavora con UITableViewAutomaticDimension
:
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}