我曾尝试使用scrollViewWillEndDragging:withVelocity:targetContentOffset
我的UITableView
所以当我到达某个地方时,即表格顶部的隐藏分段控件,它会减速到分段控件的顶部,将其“粘贴”到导航栏的下方。
我有以下代码:
- (CGPoint)tableOffsetForProposedOffset:(CGPoint)proposedOffset currentOffset:(CGPoint)currentOffset {
NSLog(@"Current: %@", NSStringFromCGPoint(currentOffset));
NSLog(@"Before: %@", NSStringFromCGPoint(proposedOffset));
if (currentOffset.y <= -10) {
// Show segmented control
NSLog(@"--- Show ---");
proposedOffset.y -= 500;
} else if (currentOffset.y >= 42) {
// Hide segmented control
}
NSLog(@"Proposed: %@", NSStringFromCGPoint(proposedOffset));
return proposedOffset;
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
*targetContentOffset = [self tableOffsetForProposedOffset:*targetContentOffset currentOffset:scrollView.contentOffset];
NSLog(@"Returned: %@", NSStringFromCGPoint(*targetContentOffset));
}
请注意,我仅使用“500”进行测试
我所有的日志都显示了正确的细节,最重要的是,“返回”*targetContentOffset
它也是正确的。即Returned: {0, -458}
。
我可能做错了什么?
提前感谢您的帮助!