【问题标题】:Always show from the first index of the table?总是从表的第一个索引开始显示?
【发布时间】:2013-08-05 08:50:36
【问题描述】:
我有一个UITableView 在我的观点中。假设tableView 有 100 个索引。如果我向下滚动并选择第 50 个索引,它会推送到另一个视图。
所以我想要的是,如果我从第二个视图弹回 tableView 视图,tableView 应该从第一个索引显示。但目前它在我之前选择的索引中。请参考下图更好地理解。
这里的“智能”是第 25 个索引。如果我选择智能,它会推送到另一个视图(详细视图)。所以如果我再次回到这个 tableView,表格应该重置并从第一个视图显示。我该如何实现这个?我尝试重新加载表,但它不起作用。
请提出你的想法。
谢谢!!!
【问题讨论】:
标签:
iphone
ios
uitableview
reloaddata
【解决方案1】:
试试这样的:
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
}
【解决方案2】:
使用它来显示tableview 中的第一个索引。
NSIndexPath *myIndexPath = [NSIndexPath indexPathForRow:1 inSection:0];
[self.tbl_presentation selectRowAtIndexPath:myIndexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
我希望这段代码对你有用。
【解决方案3】:
您需要使用scrollToRowAtIndexPath:atScrollPosition:animated: 使用滚动位置UITableViewScrollPositionTop 要求表格视图滚动到第一行。根据您正在进行的其他动画,您可能希望在延迟后执行此操作。
【解决方案4】:
在 viewWillAppear 方法中做任何事情,因为当你 come back 时它将是 called。
- (void)viewWillAppear:(BOOL)animated
{
[yourTableView.scrollView setContentOffset:CGPointMake(0,0)];
}
【解决方案5】:
在导航到要保持突出显示并在视图中显示的另一个视图之前保存行索引或值。
之后,当您返回相同的视图时,只需添加以下行:
// rowIndex is saved row value before navigating to another view.
[tableView selectRowAtIndexPath:rowIndex
animated:NO
scrollPosition:UITableViewScrollPositionMiddle];
这将解决您的问题。