tableViewの理解とtableViewセルの使用

7457 ワード

tableViewのフォーマットの違い
UItableViewStyleGroup方式を選択するとすべて表示され、UItableViewStylePlainは上に引っ張るときにグループの頭の上にUItableViewStyleGroupスタイルを使用すると、上にheadViewが表示され、約35ピクセルを占めています.tableView.tableHeaderView =
[[UIView alloc initWithFrame:CGRectMake(0, 0, 0, CGFLOAT_MIN)];//CGFLOAT_MIN ,
頭のheadViewを取り除くことができます
tableViewセルの補助ビュー##
cell.accessoryType = UITableViewCellAccessoryNone;//cell       

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;//cell         ,         ;

cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;//cell          button;

cell.accessoryType = UITableViewCellAccessoryCheckmark;//cell        

cellをクリックしても効果はありません
cell.selectionStyle = UITableViewCellSelectionStyle.None

分割線を隠す
tableView.separatorStyle = UITableViewCellSeparatorStyle.None

余計なセルを隠す
tableView.tableFooterView = UIView(frame: CGRectZero)//        cell

cellの多重化
1組のcellについて、1つのcellの背景色を変更するには、cellのtagでマークし、例えば
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
     cell.myLabel.text = [NSString stringWithFormat:@"  Label%ld", indexPath.row];
      cell.tag = indexPath.row;
      if (cell.tag == 5) {
          cell.imageVIew.backgroundColor = [UIColor greenColor];
     }
      if (cell.tag != 5) {        
      cell.imageVIew.backgroundColor = [UIColor whiteColor    

      }
     return cell;
 }

タグが付けられていない場合は、cellの多重化時に他のcellが同じreuseIdentifierであるため再利用されるとindexPath.rowで判断します.
次にcellをカスタマイズする方法を示します.cellはreuseIdentifierで識別子を再利用することに注意します.
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *str = @"cell";

    if(indexPath.section == 0){
        UITableViewCell *cell01 = [_tableView dequeueReusableCellWithIdentifier:@"cell01"];
        if(cell01 == nil){
            cell01 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell01"];
           // cell01.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;

            UIButton *btn2 = [[UIButton alloc] initWithFrame:CGRectMake(135, 70, 50, 25)];
            btn2.layer.masksToBounds = YES;
            btn2.layer.borderWidth = 0.9;
            btn2.layer.borderColor = [UIColor grayColor].CGColor;
            btn2.layer.cornerRadius = 10;
            [btn2 setTitle:@"Lv10" forState:UIControlStateNormal];
            [btn2 setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];

            UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(330, 20, 80, 40)];
            btn.layer.masksToBounds = YES;
            btn.layer.borderWidth = 0.5;
            btn.layer.borderColor = [UIColor grayColor].CGColor;
            btn.layer.cornerRadius = 5;
            [btn setTitle:@"  " forState:UIControlStateNormal];
            [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
            [btn setImage:[UIImage imageNamed:@"   "] forState:UIControlStateNormal];
            [btn setTitle:@"   " forState:UIControlStateSelected];
//            [btn setImage:nil forState:UIControlStateSelected];

            [btn addTarget:self action:@selector(pressRight:) forControlEvents:UIControlEventTouchUpInside];

            [cell01.contentView addSubview:btn2];
            [cell01.contentView addSubview:btn];
        }
        cell01.textLabel.text = @"  ";
        cell01.imageView.image = [UIImage imageNamed:@"  .jpeg"];
        return cell01;
    }