当前位置: 首页 > news >正文

UITableView实现通讯录效果

//
//  TableViewIndexViewController.m
//  study2024
//
//  Created by figo  zhu on 2024/12/22.
//#import "TableViewIndexViewController.h"
//实现协议UITableViewDelegate,UITableViewDataSource
@interface TableViewIndexViewController ()<UITableViewDelegate,UITableViewDataSource>
//通讯录索引tableview
@property (weak, nonatomic) IBOutlet UITableView *indexTableView;
//通讯录组
@property (strong,nonatomic) NSArray *sectionGroup;
//通讯录所有名字
@property (strong,nonatomic) NSArray<NSArray *> *sectionNames;@end@implementation TableViewIndexViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view from its nib.//数据源设置为自己self.indexTableView.dataSource=self;//代理设置为自己self.indexTableView.delegate=self;//获取屏幕大小int screenWidth = UIScreen.mainScreen.bounds.size.width;int screenHeight = UIScreen.mainScreen.bounds.size.height;int x = UIScreen.mainScreen.bounds.origin.x;int y = UIScreen.mainScreen.bounds.origin.x;//设置tableview的左上角坐标,及宽和高[self.indexTableView setFrame:CGRectMake(x, y, screenWidth, screenHeight)];//通讯录组self.sectionGroup=[[NSArray alloc] initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",nil];//通讯录名称self.sectionNames=[[NSArray alloc] initWithObjects:@[@"阿猫",@"阿狗"], @[@"步青云",@"步步高"],@[@"曹操",@"陈陈"],@[@"当当",@"弟弟"],@[@"艺龙",@"依依"],@[@"芳芳",@"福临"],@[@"高一",@"高二",@"高三"],@[@"黄帝",@"黄蓉"],nil];//设置索引颜色self.indexTableView.sectionIndexColor=[UIColor blueColor];//设置索引背景颜色self.indexTableView.sectionIndexBackgroundColor=[UIColor greenColor];}/*
#pragma mark - Navigation// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {// Get the new view controller using [segue destinationViewController].// Pass the selected object to the new view controller.
}
*/
//每行的数据展示
- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath {UITableViewCell *cell=[self.indexTableView dequeueReusableCellWithIdentifier:@"abc"];if(cell==nil){cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"abc"];}cell.textLabel.text=self.sectionNames[indexPath.section][indexPath.row];return cell;
}
//每一段的行数
- (NSInteger)tableView:(nonnull UITableView *)tableView numberOfRowsInSection:(NSInteger)section {return self.sectionNames[section].count;
}
//总共有几段
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{return self.sectionGroup.count;
}
//每一段的标题
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{return self.sectionGroup[section];
}
//返回分组标题数组
- (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView{return self.sectionGroup;
}
//获取点击的索引标题
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{NSLog(@"你点击的索引是%@",title);return index;
}
@end

效果:


http://www.mrgr.cn/news/81050.html

相关文章:

  • [AI]30分钟用cursor开发一个chrome插件
  • Jackson 的@JsonSerialize 注解
  • 防火墙技术与网络安全
  • android studio方便快捷保存数据读取数据(SharedPreferences)
  • 采购管理系统的设计与实现【文档+源码】
  • 三格电子——新品IE103转ModbusTCP网关
  • javaEE-多线程编程-3
  • 某政银行APP登陆逆向
  • go聊天系统项目6-服务端发送消息
  • SSH特性|组成|SSH是什么?
  • 精通Redis
  • 2023年厦门市第30届小学生C++信息学竞赛复赛上机操作题(三、2023C. 太空旅行(travel))
  • 力学笃行(二)Qt 示例程序运行
  • 腾讯云云开发 Copilot 深度探索与实战分享
  • 【多模态】swift-3框架使用
  • 定时任务——定时任务技术选型
  • dockerfile文档编写(2):docker pull和pip镜像加速
  • 【Rust自学】4.4. 引用与借用
  • javaEE--计算机是如何工作的-1
  • 【Rust自学】5.1. 定义并实例化struct
  • Timsort算法
  • 排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)
  • 【Rust自学】4.5. 切片(Slice)
  • yolov8的标签匹配解析
  • 39.在 Vue3 中使用 OpenLayers 导出 GeoJSON 文件及详解 GEOJSON 格式
  • 多个Echart遍历生成 / 词图云