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

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.kler.cn/a/448093.html

相关文章:

  • 【快速上手】linux环境下Neo4j的安装与使用
  • 【C语言】动态内存管理:详解malloc和free函数
  • linux springboot项目启动端口被占用 Port 8901 was already in use.
  • 学生管理系统,增加教师管理,班级管理,角色功能权限管理
  • 关于使用拓扑排序算法实现解析勾稽关系优先级的研究和实现
  • 一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测
  • 【漏洞-Oracle】未设置口令复杂度校验、密码有效期
  • ELK系列-(六)Redis也能作为消息队列?(上)
  • 使用Python实现量子密钥分发:构建安全通信的未来
  • scala基础学习(数据类型)-字符串
  • Oracle筑基篇-调度算法-LRU的引入
  • 【MogDB】MogDB5.2.0重磅发布第十篇-支持PLSQL嵌套子程序
  • React:组件、状态与事件处理的完整指南
  • 软件测试之边界值分析法
  • 【分享-POI工具,Excel字段取值容错小工具】
  • 基于Controller模式部署RocketMQ集群
  • 【蓝桥杯选拔赛真题96】Scratch风车旋转 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • tomcat的安装以及配置(基于linuxOS)
  • centos集群部署seata
  • Mono里运行C#脚本1
  • arXiv-2024 | 当视觉语言导航遇见自动驾驶!doScenes:基于自然语言指令的人车交互自主导航驾驶数据集
  • 【hackmyvm】eigthy 靶机wp
  • 无人机视频传输系统的通信能耗优化
  • 拷贝构造和赋值运算符重载
  • 质量小议51 - 茧房
  • 主要模型记录