Iphone开发(十)简单的列表tableView与行的响应事件

三极管共集电极放大电路详解:射极跟随器的原理、计算与应用 三极管放大电路是模拟电子技术的基石,常见组态包括共发射极、共基极和共集电极。其中共集电极电路因输入电阻大、输出电阻小、电压增益接近1的特性,常被用作射极跟随器,在信号缓冲、级间隔离和低阻抗负载驱动等场景中发挥关键作用。其核心价值并非电压放大,而是完成阻抗变换,将高内阻信号源转换为低内阻输出,同时保持信号幅值基本不变。理解其静态工作点计算与动态参数推导(如电压增益、输入输出电阻)是设计实用电路的前提。本文结合12V电源下的具体设计实例和仿真验证,梳理了从电路识别、参数计算到工程实践的完整流程,并指出常见设计误 阅读详情

 

holydancer原创,如需转载,请在显要位置注明:

转自holydancer的优快云专栏,原文地址:http://blog.youkuaiyun.com/holydancer/article/details/7429807

更多内容访问:这里

列表是移动开发中的视图中的重要部分,往往又是控件中最复杂呢,今天演示一个最简单的列表,先来对列表有个大概的了解。虽然是最简单的,但还是稍稍有些复杂.

 

在iphone开发中的列给称为tableView,在大的方向上分为两种,一种是普通列表plain,一组是分组列表grouped;

 

上面是两种不同的表格式,另外我们在上面可以发现有一个关键字Section,称为分区,在普通视图中,那个California和下面的Section Footer之前的就是一个分区,California称为Section Header,在每个分区的开头部分,Section Footer在每个分区的结尾部分,在分组视图中,每一个组就是一个section,然后每个分区中有若干行,称为row。

所以我们如果要创建一个列表的话,除了要设定格式外(分组与否),还要提供显示的内容(数据源),然后显示的样式(多少分区,每区多少行),并将这些关联起来。这些都需要在方法中设定,这些方法分别在两个协议里(是不是类似date picker之流?),一个数据源协议,一个委托协议。

好了,现在开始看代码吧,新建一个项目,打开xib文件进行如下操作:

格式设定为plain

然后在viewController中实现两个协议:

viewController.h:

 

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>

@end

然后先实现数据源协议中的三个方法来规划这个列表:

 

numberofSectionInTableView: //这个列表有多少个区,我们只来一个区先

tableView:tableViewnumberOfRowInSection://每个区都有多少行

tableView:titleForHeaderInSection://返回每个分区的标题

我们用这三个方法就可以了,然后再实现委托方法中的两个方法来画出列表和响应点击:

tableView:cellForRowAtIndexPath://这个方法返回每一行的内容,有多少行这个方法就会运行多少次。

tableView:didSelectRowAtIndexPath://这个方法响应点击哪一行。

另外,需要注意的是,列表中显示的内容一般都是在viewDidLoad中加载。

下面看实现部分代码:注意我又加了一个数组类型的属性myListArray;


viewController.m:

 

#import "ViewController.h"



@implementation ViewController
@synthesize myListArray;
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [myListArray count];
    //只有一组,数组数即为行数。
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    //我们设分区标题,不设分区标尾
    return @"dota部分英雄友情演出";
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    //这个方法返回的cell代表每一行显示的内容,每显示一行都会运行一次此方法。

    static NSString *NOTIFY = @"随便";
    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:NOTIFY];
    //寻找已经加上自定义标注的当前可重用的cell。
    if (cell==nil) {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NOTIFY];
        //找不到可重用的cell,就再生成一个,格式为默认,加上自定义标注;
        //if条件里面的是肯定先运行的,在第一次运行时都不可能找到可重用的加上标注的cell
        //只有列表滑动将已有行给挤出当前view时,挤出的那个cell才会变为可重用的
    }
    cell.textLabel.text=[myListArray objectAtIndex:indexPath.row];
    //将当前行的显示的label设为已定义数组中的一个。
    //indexPath.row代表当前行
    return cell;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
	myListArray= [[NSArray alloc]initWithObjects:@"老牛",@"敌法",@"小Y",@"NEC",@"小小",@"白虎", nil];
    
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end


这样就实现了一个简单的列表,看下效果:

 

如果要实现列表的点击响应的话,需要实现委托协议中的一个方法:

 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath


该方法能够捕捉你点击的行的信息,在点击事件发生时调用,我们现在完成这个方法,达到一个点击后弹出对话框的效果,在viewController.m中实现这个方法:

 

 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    //该方法响应列表中行的点击事件
    
    
    NSString *heroSelected=[myListArray objectAtIndex:indexPath.row];
    //indexPath.row得到选中的行号,提取出在数组中的内容。
    UIAlertView *myAlertView;
    myAlertView = [[UIAlertView alloc]initWithTitle:@"dota群英传" message:heroSelected delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
    [myAlertView show];
    //点击后弹出该对话框。
}


然后在模拟器中点击行进行测试:

 

 

好了,今天先这样吧,不知道各位看官有没有dota玩家,看见这个列表有没有兴奋呢,有木有?大声点!

 

关键词:IOS ,Iphone ,SDK开发 ,列表 ,tableView ,UITableViewCell

 

ruoyi-nbcio-plus基于vue3的flowable服务任务的升级修改 阅读详情

相关推荐

飞牛NAS+Docker打造私人IPTV直播源:手把手教你部署iptv-api

本文详细介绍了如何在飞牛NAS上通过Docker部署iptv-api,打造私人IPTV直播源。从SSH配置到Docker容器部署,手把手教你实现自动更新直播源、多终端支持的解决方案,适用于Kodi、PotPlayer等播放器,提升家庭娱乐体验。

earth的博客 5586

NSTableView(三)常用的方法

//获取当前点击的行数 - (void)onItemClicked { _currentRow = _eventTableView.clickedRow; } [TableView setAction:@selector(onItemClicked)]; //双击 [TableView setDoubleAction:@selector(doubleClick)]; //. 设置默认选中行 [_tableView selectRowIndexes:[NSIndexSet indexSet

ACERROR 787

MounRiver Studio实战:像管理个人项目一样整理沁恒MCU的EVT例程(附文件结构图)

本文详细介绍了如何使用MounRiver Studio重构沁恒MCU的EVT例程,实现工程化管理。通过分析官方EVT设计的局限性,提出标准化的目录结构和迁移步骤,帮助开发者提升代码可维护性和团队协作效率。文章还提供了MounRiver Studio的关键配置参数和常见问题排查指南,适用于沁恒MCU开发者。

weixin_33940469的博客 356

玩转iOS开发:iOS 11 新特性《UIKit新特性的基本认识》

文章分享至我的个人技术博客: https://cainluo.github.io/15099354591154.html 前两篇, 我们讲了Xcode 9的一些新特性, 可以更加方便我们去写"bug". 如果没有看的朋友可以去看看: 玩转iOS开发:iOS 11 新特性《Xcode 9》 (一) 玩转iOS开发:iOS 11 新特性《Xcode 9》 (二) 那么这一次呢, 我们来简单的了解...

weixin_34162228的博客 400

3A之自动对焦(AF)算法:从Tenegrad到拉普拉斯的清晰度评价实战

本文深入解析自动对焦(AF)算法的核心——清晰度评价函数,通过实战对比Tenegrad、方差、能量梯度、Brenner和拉普拉斯五大经典算法的原理、代码实现与性能。文章详细阐述了各函数在计算速度、抗噪性和单峰性上的优劣,并提供了从仿真测试到硬件部署的优化策略,帮助开发者根据实际场景选择最合适的AF算法。

weixin_29281915的博客 313

SAP 零售 FMS 物料主数据(一)

SAP 零售 FMS 物料主数据(一) SAP 对于鞋服行业最新的解决方案-FMS(相当于原来的AFS+Retail);更偏向与零售; 商品主数据与原来的AFS大不相同,取消了原来的Grid的网格概念,取而代之的是变式;商品主数据维护也偏向于Retail的维护模式;事物代码也不是MM01而是MM41 /MM46; 在维护商品主数据前,需要与商品部沟通定义各种商品相关的规范如编码规则,大中小类 ,颜色库,尺码库等,此处不赘述; 创建商品需要确定哪些物料是变式物料,哪些是常规不带特性的单一物料;这决定了在创建商

weixin_45518759的博客 5061

JavaFX给TableView添加点击事件

TableView<MyType> table = new TableView<>(); //... table.setRowFactory( tv -> { TableRow<MyType> row = new TableRow<>(); row.setOnMouseClicked(event -> { if (event.getClickCount() == 2 && (! row.isEmp

qq_43565434的博客 2886

把 SAP Fiori Launchpad Designer 的 Catalog 与 Group 传输讲透:从 CONF、CUST 到 Transport Request 的完整理解

SAP Fiori项目中,catalog和group的传输问题往往源于对FLPD层次模型的理解不足。FLPD包含configuration(系统级)和customizing(客户端级)两个层面,分别对应workbench request和customizing request传输方式。常见误区包括:混淆/UI2/FLPD_CONF和/UI2/FLPD_CUST入口、未提前创建传输请求、不了解层次覆盖机制(customizing会覆盖configuration)。当客户端修改configuration层的对象

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 101

【Qt】点击QTableView表格触发事件

单击QTableView表格,获取表格中的内容

K3169的博客 4180

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 928

国自然基金申请书撰写新思路:如何合理利用AI提高本子竞争力?

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。创新点、技术路线、前期基础,但是我们也可以把写好的初稿交给AI,让它扮演资深研究员,帮我们精炼表述、优化段落结构,并揪出可能被评审追问的逻辑漏洞。,我们需要的是让它帮我们理清楚思路,而不是让它替我们完成内容。

智能AI让学术科研更容易 665

iOS 关于UITableView常见使用方法

iOS 随笔

qq_34491373的博客 513

Arduino与Proteus仿真实例-LCD2004-I2C(PCF8574)驱动仿真

LCD2004-I2C(PCF8574)驱动仿真 PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。 LCD2004,即2004字符型液晶显示器,是一种点阵模块,用于显示字母、数字、字符等。 它由 5x8 个点阵位置组成; 每个位置可以显示一个字符。 两个字符之间有一个点间距,行之间有一个空格,从而将字符和行分开。 模型 2004 表示它显示 4 行,每行 20 个字符。 在前面的实例中对PCF8574和LCD2004的已经做了详细介

视觉与物联智能 1165

iphone tableView的使用

tableView的使用主要处理代码1.新建UIViewController页面,双击xib文件,打开布局视图2.将Libery视图中的Table View拖到view窗口3.单击view中的Tableview,control+F2,分别将dataSource和delegate和tableview fileowner关联4.在页面中处理table数据显示/*  *获得lsitview的size,就是listview的行数  *Get ListView size;  */-(NSInteger)tabl

小金的优快云博客 3949

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

iOS7应用开发11:列表视图TableView、iPad应用

1、列表视图TableView 用于在一个一维的列表中显示数据的方法,是滚动条视图的派生来;有动态和静态两种类型,也可以设置为plain和grouped两种风格;通过data source和delegate来设置不同的显示数据和表格属性。 plain类型表格的组成:列表头table header,分段section,列表尾table footer;每一个section由一个section he

Workshop of Wenjie.Yin 2322

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Iphone开发(十二)通过xib文件自定义列表中的行

在以往的列表tableView中,我们习惯都是使用代码生成一个cell来显示每一行,其实我们也可以用xib构造出一个,然后使用该自定义的cell来作为每一行的样式; 首先按传统的方法在viewController的xib文件中拉上去一个tableView,然后将该tableView的数据源和委托都拖到viewController上。然后在viewController.h中声明两个协议,然后在

IOS开发笔记 757

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

让UITableView响应touch事件

我们知道UITableView没有像UIButton那样可以通过addTarget方法来监听touch事件,因此在某些场合,特别是在UITableViewCell中包含UITextField的时候,我们很有可能想通过点击UITableView的其他地方来取消UITextField的焦点。也许有朋友会说,使用UITapGestureRecognizer手势来取消焦点,这样是可以行得通,但是如果Tex

u012319731的专栏 672

自己写的一个tableView自定义索引栏

由于项目美工的强烈要求,根据她的要求写了一个自定义的tableview索引栏,下面是我的代码 /** * 数据数组:manager.listArray * 索引名称数组:sectionArr * tableView行高:RowHeight * tableView的sectionView高:SectionHei

woshiwls的专栏 4766

只有一个tableview的iphone适配

1.选中tableview

态度决定一切 细节决定成败 646

iPhone TableView中图片的延时加载

<br /><br />常我们会用tableView显示很多条目, 有时候需要显示图片, 但是一次从服务器上取来所有图片对用户来浪费流量, 对服务器也是负担.最好是按需加载,即当该用户要浏览该条目时再去加载它的图片.<br />  重写如下方法<br />  - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath<

iphoneing的专栏 1852

iOS学习之Table View的简单使用

Table View简单描述:    在iPhone和其他iOS的很多程序中都会看到Table View的出现,除了一般的表格资料展示之外,设置的属性资料往往也用到Table View,Table View主要分为以下两种: Plain:这是普通的列表风格 Grouped :这是分块风格。对于UITableView,我們有一些特殊的概念和术语,比如说我们成Table View的一行为Cell,而许

空杯子 16万+

开发中碰到的iOS7.1跟8.2中tableview的差异

1.tableView的结构的差异 我碰到的问题:在透明背景ViewA上加了一个小的tableViewB,viewA上添加了点击隐藏的手势,tableViewB点击cell触发另外的手势。但是运行发现在8上A和B都可以正常响应。但是在7.1上点击tableViewB中Cell,响应的是viewA的手势,也就是说B的cell点击事件被父视图A的tap手势屏蔽了,后来查找下发现下面的情况, I

Fighting的专栏 962

iphone--UITableView的Edit方法

-(void)editBtn(在navigationbar上添加的Edit) { NSLog(@"edit"); [changyongTable setEditing:!changyongTable.editing animated:YES];

dyhbrewer的专栏 2707

iPhone开发笔记

iPhone开发笔记 IOS之helloworld 写在前面 第一个iphone程序helloworld ios sdk介绍 修改ios工程属性 写在前面 一直对移动平台比较感兴趣,并且公司有兴趣小组,所以就报了IOS,本来就是搞java的所以android的新鲜感没有IOS强,事实就是这样的,公司没有一个报android兴趣小组的。。。学习IOS一段时间了,应该把学习中的点点滴滴给

_听雨眠的专栏 4133

iPhone开发-ios7环境下Uitableview删除某一行后忽略点击事件

下面代码的作用是:当你点击选中tableview的某一行时,它将记录被选中的行。当你左扫并删除某一行时,它将删除该行数据并更新Uitableview中的数据。 @interface DummyTableViewController : UITableViewController @property (nonatomic, strong) NSMutableArray *items; @e

zcl369369的专栏 5655
上一篇: Iphone开发(九)理解subView,手动实现多个视图切换
下一篇: Iphone开发(十一)从plist文件读取列表数据并添加索引
holydancer
博客等级 码龄15年 474粉丝 59原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值