2月22号 UITableView

style:

  Grouped:有分组和分段

  Plain:没有分组和分段

Content:

  动态单元格:表里面有多少段每段有多少行是不固定的,根据数据源来变化

  静态单元格:段和单元格是固定的不会变化(系统中的设置)


 

  1 @implementation ViewController
  2 
  3 - (void)viewDidLoad {
  4     [super viewDidLoad];
  5     self.myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 568) style:UITableViewStyleGrouped];
  6     _myTableView.delegate = self;
  7     _myTableView.dataSource = self;   //<UITableViewDelegate,UITableViewDataSource>两个代理都要遵守
  8     _myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
  9     
 10     [self.view addSubview:_myTableView];
 11     
 12     //让表视图进入编辑状态
 13     [_myTableView setEditing:YES];
 14     
 15 }
 16 
 17 #pragma mark ---UITableDataSource---
 18 //配置有多少section  段 (默认为1)
 19 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
 20     return 26;
 21 }
 22 
 23 //配置每个段有多少行
 24 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
 25     return 4;
 26 }
 27 
 28 //第section段  第row行显示什么样子 (UITableViewCell)
 29 //每行显示什么样子
 30 //NSIndexPath封装了两个属性section 、row ,和一个创建NSIndexPath的类方法
 31 
 32 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
 33     //重复利用机制
 34     NSString *cellID = @"cellID";
 35     
 36     //现在队列里面判断是否有可以重复利用的cell
 37     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
 38     
 39     //如果没有返回值为nil  需要自己创建一个
 40     if (cell == nil) {
 41         cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
 42     }
 43     
 44     //cell显示的样式
 45     cell.textLabel.text = [NSString stringWithFormat:@"sec:%ld row:%ld", indexPath.section, indexPath.row];
 46     
 47     //返回给系统刚配置的这个cell
 48     return cell;
 49 }
 50 
 51 //当某个cell被点击后要做什么
 52 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
 53     //取消点击状态
 54     //[tableView deselectRowAtIndexPath:indexPath animated:YES];
 55 }
 56 
 57 //配置cell的高度
 58 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
 59     return 50;
 60 }
 61 
 62 //设置每个section头尾的标题
 63 //- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
 64 //    return @"好朋友";
 65 //}
 66 //
 67 //- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
 68 //    return @"坏朋友";
 69 //}
 70 
 71 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
 72     return 50;
 73 }
 74 
 75 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
 76     return 0.000001;
 77 }
 78 
 79 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
 80     UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)];
 81     view.backgroundColor = [UIColor greenColor];
 82     return view;
 83 }
 84 
 85 //设置cell是否可以进行编辑
 86 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
 87     if (indexPath.row == 0) {
 88         return NO;
 89     }
 90     return YES;
 91 }
 92 
 93 //更改编辑状态的按钮
 94 - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
 95     //return UITableViewCellEditingStyleInsert | UITableViewCellEditingStyleDelete;
 96     return UITableViewCellEditingStyleDelete;
 97 }
 98 
 99 //更改删除状态下右边显示的标题
100 - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
101     return @"Cancel";
102 }
103 
104 //删除状态下右边的按钮被点击了
105 - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{
106     NSLog(@"删除了");
107 }
108 
109 //上下移动
110 - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath{
111     return YES;
112 }
113 
114 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath{
115 }
116 @end

 

posted @ 2016-02-22 20:49  南城半夏北风过丶  阅读(129)  评论(0编辑  收藏  举报