iOS中UITableView的一些设置

不可滑动:

1
tableView.userInteractionEnabled = NO;

也可以在storyboard中的userInteractionEnable属性设置

显示导向箭头:

1
2
// 显示导向箭头
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

自定义按钮:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *ID = @"device";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
     
    HHDevice *device = self.device[indexPath.row];
    // 给cell的控件赋值
    cell.textLabel.text = device.nickName;
    cell.detailTextLabel.text = device.IMSI;
     
    // 自定义一个button
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btn.frame = CGRectMake(0, 0, 55, 25);
    btn.backgroundColor = [UIColor clearColor];
    btn.tag = indexPath.row;// 给按钮绑定tag,好知道点击的是哪行
    [btn setTitle:@"Edit" forState:UIControlStateNormal];
     
    [btn addTarget:self action:@selector(Edit:) forControlEvents:UIControlEventTouchUpInside];
     
    cell.accessoryView = btn;
     
    return cell;
}

设置背景图片:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.给tableView设置背景view  
  UIImageView *backImageView=[[UIImageViewalloc]initWithFrame:self.view.bounds];  
   [backImageView setImage:[UIImageimageNamed:@"liaotianbeijing"]];  
    self.tableView.backgroundView=backImageView;  
    
2.让cell透明  
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
{  
        
     
   MyCell  *cell = [tableViewdequeueReusableCellWithIdentifier:@"METext"forIndexPath:indexPath];  
    cell.backgroundColor=[UIColor clearColor];//关键语句  
    [cell setCellInfo:dic];//自定义类目方法  
     return cell;  
        
}

      给tableView设置背景图片,但如果直接设置背景  backgroundView的话,背景图不会显示,原因是  tableView上的cell默认是不透明的颜色,所以解决方法是 让  cell透明即可。

给cell设置图片:

1
cell.imageView.image = [UIImage imageNamed:@"childish_folder"];

cell滑动删除功能:

1
2
3
4
5
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"userId是:%@",_userId);
    NSLog(@"长按的行号是:%d",[indexPath row]);
}

NSInteger的输格式化输出是%ld:

1
NSString *number = [@"NO." stringByAppendingString:[NSString stringWithFormat:@"%ld:", (indexPath.row + 1)]];

如果格式写成%d的话,Xcode会出现警告。

原文地址:https://www.cnblogs.com/piaojin/p/5083504.html