UITableView的用法详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//-、建立 UITableView 
  DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)]; 
  [DataTable setDelegate:self]; 
  [DataTable setDataSource:self]; 
  [self.view addSubview:DataTable]; 
  [DataTable release]; 
    
//二、UITableView各Method说明 
    
//Section总数 
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{ 
  return TitleData; 
    
// Section Titles 
//每个section显示的标题 
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ 
  return @ ""
    
//指定有多少个分区(Section),默认为1 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
  return 4; 
    
//指定每个分区中有多少行,默认为1 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    
//绘制Cell 
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
static NSString *SimpleTableIdentifier = @ "SimpleTableIdentifier"
     
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
                              SimpleTableIdentifier]; 
     if (cell == nil) {   
         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
                                        reuseIdentifier: SimpleTableIdentifier] autorelease]; 
 
  cell.imageView.image=image; //未选cell时的图片 
  cell.imageView.highlightedImage=highlightImage; //选中cell后的图片 
  cell.text= //..... 
  return cell; 
    
//行缩进 
-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{ 
  NSUInteger row = [indexPath row]; 
  return row; 
    
//改变行的高度 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
     return 40; 
    
//定位 
[TopicsTable setContentOffset:CGPointMake(0, promiseNum * 44 + Chapter * 20)]; 
    
//返回当前所选cell 
NSIndexPath *ip = [NSIndexPath indexPathForRow:row inSection:section]; 
[TopicsTable selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionNone]; 
    
[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone]; 
    
//选中Cell响应事件 
- ( void )tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
  [tableView deselectRowAtIndexPath:indexPath animated:YES]; //选中后的反显颜色即刻消失 
    
//判断选中的行(阻止选中第一行) 
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
     NSUInteger row = [indexPath row]; 
     if (row == 0) 
         return nil; 
      
     return indexPath; 
    
//划动cell是否出现del按钮 
- ( BOOL )tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    
//编辑状态 
- ( void )tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath 
} 
[topicsTable setContentSize:CGSizeMake(0,controller.promiseNum * 44)]; 
//右侧添加一个索引表 
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{ 
//返回Section标题内容 
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ 
//自定义划动时del按钮内容 
- (NSString *)tableView:(UITableView *)tableView 
titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath 
//跳到指的row or section 
[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO]; 
三、在UITableViewCell上建立UILable多行显示 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     static NSString *CellIdentifier = @ "Cell" ;    
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
     if (cell == nil) { 
         cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
   UILabel *Datalabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 320, 44)]; 
   [Datalabel setTag:100]; 
   Datalabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
   [cell.contentView addSubview:Datalabel]; 
   [Datalabel release]; 
  }  
  UILabel *Datalabel = (UILabel *)[cell.contentView viewWithTag:100]; 
  [Datalabel setFont:[UIFont boldSystemFontOfSize:18]]; 
  Datalabel.text = [data.DataArray objectAtIndex:indexPath.row]; 
  cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
     return cell; 
//选中cell时的颜色 
typedef enum
     UITableViewCellSelectionStyleNone, 
     UITableViewCellSelectionStyleBlue, 
     UITableViewCellSelectionStyleGray 
} UITableViewCellSelectionStyle  
//cell右边按钮格式 
typedef enum
     UITableViewCellAccessoryNone,                    // don't show any accessory view 
     UITableViewCellAccessoryDisclosureIndicator,     // regular chevron. doesn't track 
     UITableViewCellAccessoryDetailDisclosureButton,  // blue button w/ chevron. tracks 
     UITableViewCellAccessoryCheckmark                // checkmark. doesn't track 
} UITableViewCellAccessoryType 
//是否加换行线 
typedef enum
     UITableViewCellSeparatorStyleNone, 
     UITableViewCellSeparatorStyleSingleLine 
} UITableViewCellSeparatorStyle //改变换行线颜色 
tableView.separatorColor = [UIColor blueColor];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值