fix: iOS List scroll to row inaccurate

This commit is contained in:
王劲鹏 2021-08-11 15:50:10 +08:00 committed by osborn
parent ee737c5c17
commit 33c681031d

View File

@ -431,7 +431,19 @@ - (void)removeDidScrollBlock:(__nonnull DoricDidScrollBlock)didScrollListener {
- (void)scrollToItem:(NSDictionary *)params { - (void)scrollToItem:(NSDictionary *)params {
BOOL animated = [params[@"animated"] boolValue]; BOOL animated = [params[@"animated"] boolValue];
NSUInteger scrolledPosition = [params[@"index"] unsignedIntegerValue]; NSUInteger scrolledPosition = [params[@"index"] unsignedIntegerValue];
[self.view scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:scrolledPosition inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:animated];
if (scrolledPosition < self.itemCount && scrolledPosition >= 0) {
for (int i = 0; i <= scrolledPosition; i++) {
[self tableView:self.view cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]];
}
dispatch_async(dispatch_get_main_queue(), ^{
[self.view scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:scrolledPosition inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:animated];
});
} else {
[self.doricContext.driver.registry onLog:DoricLogTypeError
message:[NSString stringWithFormat:@"scrollToItem Error:%@", @"scrolledPosition range error"]];
}
} }
@end @end