首次加载时隐藏UITableView的部分

时间:2014-05-06 05:58:11

标签: ios objective-c uitableview

我有一个UITableView有2个部分(第1个用于过滤器,第2个用于数据)。

我希望在加载视图时隐藏第1部分。

只有在我滚动顶部时才显示该部分。

我使用scrollToRowAtIndexPath:进行了测试,但结果与预期不符。

请帮忙。感谢。

2 个答案:

答案 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变量检查是否加载一个部分或 两节。
  • 在ViewDidLoad中创建YES,这是UITableView第一次加载一个部分。
  • 然后当UITableView滚动到顶部时,将BOOL变量设为NO
- (void)viewDidLoad
{
    [super viewDidLoad];

    isFirstTime = YES;
}
  • 在TableView的数据源方法
- (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
   }
     

}