我有一个UITableView
有2个部分(第1个用于过滤器,第2个用于数据)。
我希望在加载视图时隐藏第1部分。
只有在我滚动顶部时才显示该部分。
我使用scrollToRowAtIndexPath:
进行了测试,但结果与预期不符。
请帮忙。感谢。
答案 0 :(得分:1)
您可以添加 BOOL 变量,以确定它是否是第一次加载。在 viewDidLoad 中将其设置为true,如:
- (void)viewDidLoad
{
[super viewDidLoad];
isFirstTimeLoading = YES;
}
然后在 numberOfSectionsInTableView:委托方法中,
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
if (isFirstTimeLoading) {
return 1;
} else {
return 2;
}
}
可以使用
找到滚动到顶部的TableView- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
在此方法中,检查行是否为顶行。如果是,则将 isFirstTimeLoading 改为否并重新加载数据。如果有必要,别忘了更改数据。
答案 1 :(得分:1)
BOOL
变量检查是否加载一个部分或
两节。YES
,这是UITableView第一次加载一个部分。BOOL
变量设为NO
- (void)viewDidLoad { [super viewDidLoad]; isFirstTime = YES; }
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ if (isFirstTime) { return 1; } return 2; }
UITableView
以滚动TOP.We将使用UIScrollview
的委托方法.UITableView是UIScrollView的子类。-(void)scrollViewDidScroll:(UITableView *)tableView{ CGFloat content_Offset = tableView.contentOffset.y; if (content_Offset >= 0 && isFirstTime){ //UITableview is scrolled to top isFirstTime = NO; [self.myTbaleView reloadData]; }else if (content_Offset<0) { //UITableview is draged down }
}