tableView 一些零散的屬性和方法

一些零散的屬性和方法

    // 取得選中的那行
   NSIndexPath *path = [self.tableView indexPathForSelectedRow];

  // 每一行cell的高度
    self.tableView.rowHeight = 50;
  // 每一組頭部控件的高度
    self.tableView.sectionHeaderHeight = 44;

 // 設置footerView
  MJTgFooterView *footer = [MJTgFooterView footerView];

  footer.delegate = self;

  self.tableView.tableFooterView = footer;

  self.tableView.tableHeaderView


   //表格的設置
  // 去除分割線
    self.tableView.backgroundColor = [UIColor colorWithRed:235/255.0 green:235/255.0 blue:235/255.0 alpha:1.0];
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    self.tableView.allowsSelection = NO; // 不容許選中

    自動滾動表格到最後一行
    NSIndexPath *lastPath = [NSIndexPath indexPathForRow:self.messageFrames.count - 1 inSection:0];
    [self.tableView scrollToRowAtIndexPath:lastPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];

   封裝好的從xib加載cell的方法(本身寫的)
  + (instancetype)cellWithTableView:(UITableView *)tableView
{
    static NSString *ID = @"tg";
    MJTgCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if (cell == nil) {
        // 從xib中加載cell
        cell = [[[NSBundle mainBundle] loadNibNamed:@"MJTgCell" owner:nil options:nil] lastObject];
    }
    return cell;
     }



   關於數據源刷新

    告訴tableView從新加載模型數據
     // reloadData : tableView會向數據源從新請求數據
     // 從新調用數據源的相應方法取得數據
    // 從新調用數據源的tableView:numberOfRowsInSection:得到行數
    // 從新調用數據源的tableView:cellForRowAtIndexPath:得知每一行顯示怎樣的cell
    // 所有刷新[self.tableView reloadData];
    // 局部刷新
    NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:0];
    [self.tableView reloadRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationBottom];

   帶動畫效果的組刷新

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    MyHeaderFooterView *headerView = [MyHeaderFooterView headerViewWithTableView:tableView];

    headerView.groupsModel = _dataArray[section];

    headerView.tag = section;

    NSLog(@"%ld",headerView.tag);

    headerView.delegate = self;

    return headerView;
}

- (void)MyHeaderFooterViewDidClickedWithHeaderView:(MyHeaderFooterView *)headerView
{
    //[self.tableView reloadData];

        [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:headerView.tag] withRowAnimation:UITableViewRowAnimationAutomatic];

     }



  //局部section刷新

    NSIndexSet * nd=[[NSIndexSet alloc]initWithIndex:1];//刷新第二個section

    [tview reloadSections:nd withRowAnimation:UITableViewRowAnimationAutomatic];

    //局部cell刷新

    NSIndexPath *te=[NSIndexPath indexPathForRow:2 inSection:0];//刷新第一個section的第二行

    [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:te,nil] withRowAnimation:UITableViewRowAnimationMiddle];

    //註冊cell類
    //[MyTableViewCell class]  cell的集合類
       [_tableView registerClass:[MyTableViewCell class] forCellReuseIdentifier:@"iden"];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//    static NSString *iden = @"iden";
//    MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:iden];
//    if (cell == nil) {
//        cell = [[MyTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:iden];
//    }
//    BookModel *model = _dataArray[indexPath.row];
//    cell.titleLabel.text     = model.title;
//    cell.detailLabel.text    = model.detail;
//    cell.priceLabel.text     = model.price;
//    cell.iconImageView.image = [UIImage imageNamed:model.icon];
//    return cell;

    //使用集合類
    //從複用池裏面找帶有iden標識的cell,若是複用池裏面沒有,系統會自動建立,不用咱們管理
    MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"iden" forIndexPath:indexPath];

    BookModel *model = _dataArray[indexPath.row];
    cell.titleLabel.text = model.title;
    cell.detailLabel.text = model.detail;
    cell.priceLabel.text = model.price;
    cell.iconImageView.image = [UIImage imageNamed:model.icon];
    return cell;

}

        讓當前的cell帶有動畫效果的取消選中時的深背景色

        [tableView deselectRowAtIndexPath:indexPath animated:YES];
相關文章
相關標籤/搜索