TableView 菜鸟容易忘记的细节

看图


TableView 菜鸟容易忘记的细节_第1张图片
屏幕快照 2016-07-25 下午10.52.59.png

1.最上面动图是TableView的 tableHeaderView,在initWithFrame设置如下:

    _headImageScView = [[KKImageScroller alloc] init];
    _headImageScView.delegate = self;
    _headImageScView.frame = CGRectMake(0, 0, HMScreenW, 210);
  #pragma mark - 先设置大小 再设置为 tableHeaderView
//[_tableView setTableHeaderView:_headImageScView];
    _tableView.tableHeaderView = _headImageScView;

一定先设置大小 再设置为 tableHeaderView,这样不会遮挡第一个cell.

假如是动态头部,每次改变frame后要重新设置一遍 :

_tableView.tableHeaderView = _headImageScView;

这样保证tableHeaderView每次frame都是正确的!

2.热门那个view是所有section的头部,这个如果只设置文字,在以下方法中设置

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

return @"热门推荐";

}

如果需要设置带按钮或者图片的效果,就要自定义一个view继承UITableViewHeaderFooterView,然后在下面方法中返回:

  - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    HomeFirstHeaderV *headerView = [HomeFirstHeaderV shareHomeFirstHeaderV:tableView];
    headerView.frame = CGRectMake(0, 5, HMScreenW, 20);

    return  headerView;
}

此头部视图若想循环使用,在自定义的时候添加以下代码

  HomeFirstHeaderV *headerView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:ID];

  if (headerView == nil) {
      headerView = [[self alloc] initWithReuseIdentifier:ID];
    }

在以下方法中设置sectionHeader大小,其中return 0.1的时候最小。

  - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
    return 0.1;
    }

  - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(      NSInteger)section{

      return 30;
  }

最后实现sectionHeader悬停效果,设置UITableViewStyle为UITableViewStylePlain,不要悬停就设置为UITableViewStyleGrouped。

  typedef NS_ENUM(NSInteger, UITableViewStyle) {
        UITableViewStylePlain,          // regular table view
        UITableViewStyleGrouped         // preferences style table view
  };

一个菜鸟的自白。

你可能感兴趣的:(TableView 菜鸟容易忘记的细节)