您的位置:首页 > 产品设计 > UI/UE

UITableView

2016-03-15 08:21 411 查看

code

设置 UITableView –
高级


@property (nonatomic, retain) UITableView *myTableView;

// 创建 UITableView
self.myTableView = [[UITableView alloc] initWithFrame: self.view.frame];
[self.view addSubview: self.myTableView];
[_myTableView release];
self.myTableView.delegate = self;
self.myTableView.dataSource = self;
// 注册UITableViewCell
[self.myTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:NSStringFromClass([UITableViewCell class])];


protocol

UITableViewDataSource

delegate
dataSource


※ 设置每个分区有多少行

- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
switch (section) {
case 0:
return 10;
case 1:
return 20;
default:
return 3;
}
//    NSDictionary *proDic = self.proArr[section];
//    NSArray *cityArr = proDic[@"cityArr"];
//    return cityArr.count;

}


※ 设置UITableViewCell

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.myTableView dequeueReusableCellWithIdentifier: NSStringFromClass([UITableViewCell class]) forIndexPath: indexPath];
cell.textLabel.text = @"myCell 文本"
return cell;
//    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: NSStringFromClass([UITableViewCell class]) forIndexPath:indexPath];
//    cell.textLabel.text =  self.proArr[indexPath.section][@"cityArr"][indexPath.row][@"cityName"];
//    return cell;

}


设置分区个数

- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 4;
// return self.proArr.count;
}


设置分区的标题

- (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
switch (section) {
case 0:
return @"Haha";
case 1:
return @"Xixi";
default:
return @"Enen";
}
// return self.proArr[section][@"proName"];
}


设置分区的视图

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *view = [[[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)]autorelease];
view.backgroundColor = [UIColor cyanColor];
return view;
}


设置类似通讯录最右边的迷之条状物(A~Z)

- (nullable NSArray <NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView {
return @[@"A", @"B", @"C"];
//    NSMutableArray *titleArr = [NSMutableArray array];
//    for (NSDictionary *dic in self.proArr) {
//        NSString *title = dic[@"proName"]
//        [titleArr addObject: title];
//    }
//    return titleArr;

}


UITableViewDelegate

delegate
delegate


※ 设置每个cell的点击方法
void-->tab-->didS


//
void-->tab-->didDes
保存之前点击的indexPath

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// NSLog(@"%ld", indexPath.row);
// NSLog(@"%ld", indexPath.section);
}


动态设置行高每个分区的头视图

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *view = [[[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)]autorelease];
view.backgroundColor = [UIColor cyanColor];

UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 150, 50)];
lable.text = @"分区标题";
[view addSubview:lable];
[lable release];

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.frame = CGRectMake(270, 0, 40, 40);
[button setTitle:@"更多" forState:UIControlStateNormal];
[view addSubview:button];
return view;
}


设置每个单元格的行高

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// indexPath.row
}


property

rowHeight
行高


Method

reloadRowsAtIndexPaths:withRowAnimation:
单行刷新


low-code

设置 UITableView –
低级


UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) style:UITableViewStylePlain];
[self.view addSubview: tableView];
[tableView release];

// 设置行高
tableView.rowHeight = 100;

tableView.dataSource = self;
tableView.delegate = self;


设置TableViewCell –
低级


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// 设置重用的标志,一般来讲,一个种类的cell就设置一个相对应的重用标志
static NSString *reuse = @"reuse";
// 根据指定的重用标志,在重用池中找,是否有闲置的cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuse];
// 如果找到了闲置的cell,对象就不为空;如果没找到,cell保存了一个空值,空值的话,需要创建一个cell
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:reuse]autorelease];
}
cell.textLabel.text = @"Cell的文本";
cell.detailTextLabel.text = [NSString stringWithFormat:@"%第ld行的编号", indexPath.row];
cell.imageView.image = [UIImage imageNamed:@"cell上方的图片];

return cell;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: