第4课、UITableView专题(一)

一、 创建项目 storyboard 。

二、 往ViewController上拖一个UITableView上去。

    此时,建立连线,右键TableView,设置datasource,到Controller上。

三、 在.h文件中,UIViewController要遵守UITableViewDataSource这个协议。

四、 如果此时,Run, 就会报错,可以看下错误信息。

   提示没有实现numberOfSectionsInTableView方法。

五、 在.m文件中,整理下重要和必须的几个方法:

  5.1  分组的数量  

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

  5.2 每个分组的行数量  

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

  5.3 每行显示的内容  

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

 记录个小例子:

#import "ViewController.h"

@interface ViewController ()

@property (strong, nonatomic) NSArray * arrLN;  //辽宁省数组
@property (strong, nonatomic) NSArray * arrJS;  //江苏省数组

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
      //初始化数组
    _arrLN = @[@"沈阳市", @"大连市", @"鞍山市", @"锦州市"];
    _arrJS = @[@"南京市", @"无锡市", @"徐州市", @"苏州市", @"南通市"];
}

#pragma mark - 分组数量
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;  //分2组
}

#pragma mark - 每个分组的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section == 0)    {
        return _arrLN.count;  //辽宁有多少行
    }  
    else
    {
        return _arrJS.count;  //江苏有多少行
    }
}

#pragma mark - 每行显示的内容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];

    if (indexPath.section == 0)
    {
        cell.textLabel.text = _arrLN[indexPath.row];   //cell显示的内容
    }
    else
    {
        cell.textLabel.text = _arrJS[indexPath.row];
    }
    return cell;
}

//分组头部
-(NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return section == 0 ? @"辽宁省" : @"江苏省";
}

//分组尾部
-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
{
    return section == 0 ? @"辽宁省结束" : @"江苏省结束";
}

  总结:

    1.  初步了解下,TableView基本的几个方法。

    2.  小例子,在上下拖动的时候,存在Error。 待后续解决。

  

时间: 2024-10-25 20:50:23

第4课、UITableView专题(一)的相关文章

第4课、UITableView专题(三)

一.本次小例子截图: 二.代码如下: #import <Foundation/Foundation.h> @interface Product : NSObject //标题 @property (strong, nonatomic) NSString * title; //描述 @property (strong, nonatomic) NSString * desc; //图片 @property (strong, nonatomic) NSString * imageName; @end

第4课、UITableView专题(四)

重构下单元格方法 #pragma mark 单元格内容 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { // UITableViewCell * cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];

第4课、UITableView专题(五)

目标: 主从表关系 : 点击“省份名称” -  显示“城市列表” #import "MainTableViewController.h" #import "ShiTableViewController.h" @interface MainTableViewController () //省份数组 @property (strong, nonatomic) NSArray * arrSheng; //城市字典 @property (strong, nonatomic)

第4课、UITableView专题(二)

对TableView进一步理解 1.  创建项目.-- 省市级联小例子. 2.  添加.plist文件.可以理解为数据字典.键值对(Key - Value) 2.1 cities.plist  - 城市 2.2 provinces.plist -  省份 3.  常用方法: 3.1  QQ,微信,通讯录常见的,列表右侧有:ABCDE... 字样,就是如下方法. - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

买《Photoshop(PS)CC2019购课赠书专题》专题视频课程送纸质图书说明

<视觉封王:Photoshop CC 2019立体化教程>,清华大学出版社,定价99元,上市一年来,取得了广大学员的认可. 为了答谢广大学员对吴刚大讲堂以及吴老师的支持,现购买51CTO学院<Photoshop(PS)CC2019购课赠书>专题视频课程的学员送一本<视觉封王:Photoshop CC 2019立体化教程>,清华大学出版社,定价99元的纸质版图书(寄书免快递费).请于购买课程后10个工作日内申请赠书,过期视为放弃.注意:苹果支付购买.8折(含8折)以下活动

UI第九、第十、第十一课UITableView

主要内容:UITableView 一.表视图 UITableView表示图:通常用来管理一组具有相同数据结构的数据 UITableView继承与UIScrollView,所有可以滚动,表示图的每一个数据都显示在UITableViewCell对象中,表示图可以分区显示数据,每个分区称为一个section,每一行称为row,编号都是从0开始 二.表示图的创建 每一行中要显示的数据,需要有一个数据源DataSource 那么需要遵守两个协议: - (NSInteger)tableView:(UITab

商学院

前 言 中南大学以“建设特色鲜明的世界一流大学”为办学目标,主动对接国家重大发展战略需求,为行业和地方社会经济发展服务,坚持将“质量提升”作为构建一流本科教育的核心任务.为进一步深化本科教育教学改革,完善本科人才培养体系,全面提升人才培养质量,学校从2014年3月开始,启动2016版本科人才培养方案的修订工作,同时组织了各教学单位对其开设课程的教学大纲进行修订.教学大纲是实施专业培养方案,实现高校培养目标及要求的教学指导文件,是组织教学过程.进行教学质量评估和实施教学管理的主要依据.制订与本科教

『2020第一次考试总结及规划』

多校联合测试 一场常规省选难度的模拟赛,三题的标签分别是"结论题","多项式","费用流". 第一题看似是数位题,但是卡空间,并且删除操作难以用\(\mathrm{Trie}\)等数据结构维护,让人匪夷所思. 正解是一个结论,值域区间最大的\(\mathrm{and}\)和必然诞生在前\(p\)大的数当中,\(p\)与值域的一个\(\log\)同阶.证明可以考虑反证法,分成\(\mathrm{ans}\)最高位以上的位和最高位以下的位两部分考虑即

Cocos3D专题课程源码地址

源码地址 https://github.com/super626/LessonDemo cocos2d引擎版本3.7以上 下载后放置在LessonDemo/cocos2d目录下 MAC配置文件 LessonDemo/proj.ios_mac/LessonDemo.xcodeproj,直接用Xcode打开(Xcode5.1以上).编译桌面版和iOS版. win32配置文件 LessonDemo/proj.win32/LessonDemo.sln,用Visual Studio 2012以上版本打开,