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
delegatedataSource
※ 设置每个分区有多少行
- (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
delegatedelegate
※ 设置每个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; }
相关文章推荐
- Is there any way to define a min and max value for edittext in android?
- android基础回顾(三)基础UI组件
- iOS-UIDynamic物理仿真-捕捉-UISnapBehavior
- 同一设置UINavigationBar
- UITextField的键盘(格式化设置)
- Sea.js & Require.js
- iOS-UIDynamic物理仿真-重力、碰撞
- java7新特性之—String values in a switch statement
- 前端开发总结--之关于FusionSphere WEBUI的想法
- juicer js模板引擎
- UIView的layoutSubviews和drawRect方法何时调用
- UITableViewCell选中自定义的颜色
- String、StringBuffer与StringBuilder之间区别
- iOS-Masonry布局UIScrollView
- Android 自定义UI控件模板 组合模式
- easyui messager修改button按钮里的文字
- [备查]使用 SPQuery 查询 "Person or Group" 字段
- UIButton自定义路径动画
- 【资源分享】visual tracker bechmark v1.0 TB-50 Sequences合集
- 设计模式之------创建型模式(四)-----建造者模式(Builder)