ios初识uitableview及简单用法二(模型数据)

zzqqrr      2022-02-08     753

关键词:

//
//  ViewController.m
//  ZQRTableViewTest
//
//  Created by zzqqrr on 17/8/24.
//  Copyright (c) 2017年 zzqqrr. All rights reserved.
//

#import "ViewController.h"
#import "ZQRCarGroup.h"

@interface ViewController () <UITableViewDataSource>
@property (weak,nonatomic) IBOutlet UITableView *tableView;
@property (nonatomic,strong) NSArray *carGroups;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //设置数据源
    self.tableView.dataSource=self;
}

- (NSArray *)carGroups
{
    if(_carGroups==nil){
        ZQRCarGroup *model1=[[ZQRCarGroup alloc] init];
        model1.title=@"哈哈";
        model1.desc=@"呵呵";
        model1.cars=@[@"第一组第一行"];
        
        ZQRCarGroup *model2=[[ZQRCarGroup alloc] init];
        model2.title=@"哈哈";
        model2.desc=@"呵呵";
        model2.cars=@[@"第二组第一行",@"第二组第二行"];

        ZQRCarGroup *model3=[[ZQRCarGroup alloc] init];
        model3.title=@"哈哈";
        model3.desc=@"呵呵";
        model3.cars=@[@"第三组第一行",@"第三组第二行",@"第三组第三行"];
        _carGroups=@[model1,model2,model3];
    }
    return _carGroups;
}

/** 设置多少组组 */
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.carGroups.count;
}
/** 指定组中的行 */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    ZQRCarGroup *group=self.carGroups[section];
    return group.cars.count;
}

/** 每一组显示的内容 */
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
    ZQRCarGroup *group=self.carGroups[indexPath.section];
    NSString *strCar=group.cars[indexPath.row];
    cell.textLabel.text=strCar;
    return cell;
}
/** 头部文字 */
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    ZQRCarGroup *model=self.carGroups[section];
    return model.title;
}
/** 尾部文字 */
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    ZQRCarGroup *model=self.carGroups[section];
    return model.desc;
}
@end

模型

//
//  ZQRCarGroup.h
//  
//
//  Created by zzqqrr on 17/8/25.
//
//

#import <Foundation/Foundation.h>

@interface ZQRCarGroup : NSObject
/**
 *头部标题
 */
@property (nonatomic,copy) NSString *title;
/**
 *尾部的描述
 */
@property (nonatomic,copy) NSString *desc;
/**
 *所有的信息列表
 */
@property (nonatomic,strong) NSArray *cars;
@end
//
//  ZQRCarGroup.m
//  
//
//  Created by zzqqrr on 17/8/25.
//
//

#import "ZQRCarGroup.h"

@interface ZQRCarGroup()

@end

@implementation ZQRCarGroup

@end

 

python基础二:pycharm的安装及简单使用,while循环,格式化输出,运算符,编码的初识,git(代码片段)

...装及简单使用,while循环,格式化输出,运算符,编码的初识,git1.pycharm的安装及简单使用Tab/Shift+Tab缩进、不缩进当前行(先选中代码)Shift+滚轮放大缩小代码Ctrl+?注释、解注(先选中代码)Ctrl+d复制上一行代码Ctrl+z撤销Ctrl+Shif... 查看详情

shiro:初识shiro及简单尝试(代码片段)

Shiro一、什么是Shiro  ApacheShiro是Java的一个安全(权限)框架  作用:认证、授权、加密、会话管理、与web集成、缓存等  下载地址:http://shiro.apache.org/download.html二、Shiro的架构  1)subject:可以与应用交互的“用户&r... 查看详情

urp学习之二--初识urp(代码片段)

上一节我们知道了SRP的作用和基本用法,现在来看一下我们的主角--URP是个怎样的管线把!Unity2019.3及之后的版本才能看到URP这个package,前身是LWRP,可以创建默认管线项目然后手动导入,或者直接创建URP项目。导入之后我们开始... 查看详情

ios开发ui篇—uitableview控件简单介绍

iOS开发UI篇—UITableview控件简单介绍一、基本介绍在众多移动应?用中,能看到各式各样的表格数据。在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支持垂直滚动,?且性能极佳。UITableview... 查看详情

初识archaius的简单使用及高级使用-01(代码片段)

初识Archaius的简单使用及高级使用-01前言版本约定为何选择已经停更的1.x版本?正文基本使用使用本地文件作为配置源代码示例使用多个URL作为配置源示例代码更改默认设置高级功能使用(待续)自定义配置源或轮询... 查看详情

初识archaius的简单使用及高级使用-01(代码片段)

初识Archaius的简单使用及高级使用-01前言版本约定为何选择已经停更的1.x版本?正文基本使用使用本地文件作为配置源代码示例使用多个URL作为配置源示例代码更改默认设置高级功能使用(待续)自定义配置源或轮询... 查看详情

celery初识及简单实例

 Celery是一个“自带电池”的任务队列。易于使用,可以轻易入门,它遵照最佳实践设计,使产品可以扩展,或与其他语言集成,并且它自带了在生产环境中运行这样一个系统所需的工具和支持。本文介绍基础部分:选择和安... 查看详情

ios开发之--uitableview中的visiblecells的用法

先上图: 具体代码如下:#import"ViewController.h"@interfaceViewController()<UITableViewDelegate,UITableViewDataSource>@property(nonatomic,strong)UITableView*myTableV;@property(nonatomic,strong)NSArray* 查看详情

初识websocket及java服务端的简单实现

概念:WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接... 查看详情

正则表达式初识及简单的案例应用

正则表达式正则表达式首先是一个表达式,有一定的规则,也叫规则表达式 按照一定的规则来匹配字符串的这样的表达式,叫做正则表达式正则表达式是由好多的符号组成的作用:匹配字符串正则表达式的符号----元字符,... 查看详情

wcf:初识wcf

目录:一、什么是WCF二、WCF能做什么三、WCF的模型四、WCF的基本概念五、WCF的快速创建 1.WCF是什么A、WindowsCommunicationFoundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows通讯开发平台。B、它... 查看详情

初识飞桨框架api(代码片段)

前言:飞桨框架2.0版本中推出了高层API,对飞桨API进行封装和升级,提高了飞桨的易学性。下面我来带大家了解一下飞桨的高层API。什么是高层API        飞桨高层API是飞桨框架推出的快速实现深度学习模型的API&#... 查看详情

servlet简单用法

一、创建javaweb项目  参考二、创建LoginServlet类  LoginServlet需要继承HttpServlet,并重写四个方法:init()doGet()doPost()destroy()packagecom.httpshttp.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servl 查看详情

四种io模型

...非阻塞IO四.信号驱动IO五.异步IO目录:一.什么是IO?对于IO的简单理解,我们首先通过两个数据之间的交互过程来理解什么是IO?向上面这样数据从对应的发送缓冲区发送到对应的接受缓冲区的过程就叫做IO操作,对应的五种IO也是对于这... 查看详情

四种io模型

...非阻塞IO四.信号驱动IO五.异步IO目录:一.什么是IO?对于IO的简单理解,我们首先通过两个数据之间的交互过程来理解什么是IO?向上面这样数据从对应的发送缓冲区发送到对应的接受缓冲区的过程就叫做IO操作,对应的五种IO也是对于这... 查看详情

unix下io模型及他们之间的区别

目录一:Unix下5种IO模型二:他们之间的区别一:Unix下5种IO模型阻塞式IO非阻塞式IOIO多路复用(select和poll)信号驱动式IO(SIGIO)异步IO对于一个套接字上的输入操作,两个阶段:1)等待数据从网络中到达,被复制到内核中的某... 查看详情

初识网络参考模型/协议

网络参考模型模型OSI七层模型,将复杂的问题分解简单化研究。顺口溜:(应表会传往树屋)应用层:网络服务与各种应运程序。表示层:数据的表示、安全、压缩。会话层:建立、管理、终止会话。传输层:确定通信是否可靠、定... 查看详情

ios开发ui篇—uitableview控件基本使用

iOS开发UI篇—UITableview控件基本使用一、一个简单的英雄展示程序NJHero.h文件代码(字典转模型)#import<Foundation/Foundation.h>@interfaceNJHero:NSObject/***头像*/@property(nonatomic,copy)NSString*icon;/***名称*/@property(nonatomic,copy 查看详情