iPhone UITableView

本文介绍如何使用UITableView创建简单列表,并实现数据加载与用户点击反馈。通过实现UITableViewDataSource与UITableViewDelegate协议,完成列表数据填充及响应用户操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UITableView是iPhone中比较常用的,用的比较多的控件,下面我们使用UITableView创建一个简单的表格,效果如下:

 \


如果要表格中增加数据的话,需要增加UITableViewDataSource协议。

如果需要响应用户单击的话,需要增加UITableViewDelegate协议。

 


1、创建项目:使用模板Single View Application新建一个项目,仅支持iPhone。

2、在ViewController.h中增加UITableViewDataSource和UITableViewDelegate协议,如下:


[cpp]
#import <UIKit/UIKit.h>  
 
@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> { 
 
    NSArray * listData; 

 
@property ( nonatomic, retain) NSArray *listData; 
 
@end 

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITableViewDataSource, UITableViewDelegate> {

    NSArray * listData;
}

@property ( nonatomic, retain) NSArray *listData;

@end

3、往列表中增加数据,实现UITableViewDataSource协议,如下:


[cpp] view plaincopyprint?//返回总行数  
-(NSInteger ) tableView:(UITableView *)tableView 
 
  numberOfRowsInSection:(NSInteger )section 
 
{     
    return [ self.listData count ]; 
     

 
// 添加每一行的信息  
- (UITableViewCell *) tableView:(UITableView *)tableView 
          cellForRowAtIndexPath:(NSIndexPath *)indexPath 
 
{    
     
    NSString *tag=@"tag"; 
     
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:tag]; 
     
    if (cell==nil ) { 
        cell=[[[ UITableViewCell alloc ] initWithFrame : CGRectZero 
                                        reuseIdentifier:tag] autorelease]; 
    }     
     
    NSUInteger row=[indexPath row]; 
     
    //设置文本  
    cell.text =[listData objectAtIndex :row]; 
     
    //选中后的颜色又不发生改变,进行下面的设置  
    //cell.selectionStyle = UITableViewCellSelectionStyleNone;   
     
    //不需要分割线  
    //tableView.separatorStyle=UITableViewCellSeparatorStyleNone;    
     
    return cell; 
     


4、响应用户单击事件,实现UITableViewDelegate协议,如下:


[cpp]
//响应用户单击事件  
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  
     
    UIAlertView* showSelection; 
    NSString* message; 
     
    message = [[NSString alloc]initWithFormat:@"You chose the : %@", 
                     [self.listData objectAtIndex:indexPath.row]]; 
     
    showSelection = [[UIAlertView alloc] 
                     initWithTitle:@"Selected" 
                     message:message 
                     delegate:nil 
                     cancelButtonTitle:@"OK" 
                     otherButtonTitles:nil];    
     
    [showSelection autorelease]; 
    [showSelection show]; 


5、往ViewController中增加UITableView,并将UITableView的delegate和dataSource连接到ViewController。如下图所示:

 

 

 

 

 \


6、完整的代码如下:


[cpp]
#import "ViewController.h"  
 
@interface ViewController () 
 
@end 
 
@implementation ViewController 
 
@synthesize listData; 
 
- (void)viewDidLoad 

     
    self.listData =[[NSArray alloc] initWithObjects:@"Item1",@"Item2",@"Item3", @"Item4", @"Item5", @"Item6", @"Item7",nil];; 
 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib.  

 
- (void)viewDidUnload 

    self.listData = nil; 
     
    [super viewDidUnload]; 
    // Release any retained subviews of the main view.  

 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 

    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 

 
 
#pragma mark - Table view data source delegate  
 
//返回总行数  
-(NSInteger ) tableView:(UITableView *)tableView 
  numberOfRowsInSection:(NSInteger )section 
{     
    return [ self.listData count ]; 

 
// 添加每一行的信息  
- (UITableViewCell *) tableView:(UITableView *)tableView 
          cellForRowAtIndexPath:(NSIndexPath *)indexPath 
 
{    
     
    NSString *tag=@"tag"; 
     
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:tag]; 
     
    if (cell==nil ) { 
        cell=[[[ UITableViewCell alloc ] initWithFrame : CGRectZero 
                                        reuseIdentifier:tag] autorelease]; 
    }     
     
    NSUInteger row=[indexPath row]; 
     
    //设置文本  
    cell.text =[listData objectAtIndex :row]; 
     
    //选中后的颜色又不发生改变,进行下面的设置  
    //cell.selectionStyle = UITableViewCellSelectionStyleNone;   
     
    //不需要分割线  
    //tableView.separatorStyle=UITableViewCellSeparatorStyleNone;    
     
    return cell; 
     

 
#pragma mark - Table view data delegate  
 
//响应用户单击事件  
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  
     
    UIAlertView* showSelection; 
    NSString* message; 
     
    message = [[NSString alloc]initWithFormat:@"You chose the : %@", 
                     [self.listData objectAtIndex:indexPath.row]]; 
     
    showSelection = [[UIAlertView alloc] 
                     initWithTitle:@"Selected" 
                     message:message 
                     delegate:nil 
                     cancelButtonTitle:@"OK" 
                     otherButtonTitles:nil];    
     
    [showSelection autorelease]; 
    [showSelection show]; 
}
内容概要:本文介绍了奕斯伟科技集团基于RISC-V架构开发的EAM2011芯片及其应用研究。EAM2011是一款高性能实时控制芯片,支持160MHz主频和AI算法,符合汽车电子AEC-Q100 Grade 2和ASIL-B安全标准。文章详细描述了芯片的关键特性、配套软件开发套件(SDK)和集成开发环境(IDE),以及基于该芯片的ESWINEBP3901开发板的硬件资源和接口配置。文中提供了详细的代码示例,涵盖时钟配置、GPIO控制、ADC采样、CAN通信、PWM输出及RTOS任务创建等功能实现。此外,还介绍了硬件申领流程、技术资料获取渠道及开发建议,帮助开发者高效启动基于EAM2011芯片的开发工作。 适合人群:具备嵌入式系统开发经验的研发人员,特别是对RISC-V架构感兴趣的工程师和技术爱好者。 使用场景及目标:①了解EAM2011芯片的特性和应用场景,如智能汽车、智能家居和工业控制;②掌握基于EAM2011芯片的开发板和芯片的硬件资源和接口配置;③学习如何实现基本的外设驱动,如GPIO、ADC、CAN、PWM等;④通过RTOS任务创建示例,理解多任务处理和实时系统的实现。 其他说明:开发者可以根据实际需求扩展这些基础功能。建议优先掌握《EAM2011参考手册》中的关键外设寄存器配置方法,这对底层驱动开发至关重要。同时,注意硬件申领的时效性和替代方案,确保开发工作的顺利进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值