Xcode6 IOS开发UITableView基于Storyboard的使用

1.点击项目里面的Storyboard文件,然后给当前的UIViewController控制器里面拖入TableView,如下图所示

2.然后选中tableView,选择属性里面的Prototype Cells,设置参数为1,然后设置Style为Group,就会出现一个Cell空间在TableView上,然后给里面拖入你想要的东西,我再这里加入拖入Label

3.给TableView设置代理

设置代理有两种方式,

1)连线:按住control连接tableView到当前的控制器ViewController上

2)代码设置:在需要代理的ViewController.m文件里面加入

self.tableView.delegate = self;
self.tableView.dataSource = self;
设置完之后再把TableView拖到ViewController.h文件里面设置关联

4.自定义Cell

新建SimpleTableViewCell.m文件,然后选中之前的Storyboard里面的Cell,给它添加class设置关联,之后就可以把cell里面的label拖到SimpleTableView.h文件里面

5.在ViewController里面需要实现的TableView先关的

1)给ViewController.m文件@interface后面加入代码如下

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

2)常用的方法

/******************UITableView********************************/
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}

#pragma mark 一组里面有多少行
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    NSLog(@"一共是%ld行",tableData.count);
    return tableData.count;
}

#pragma mark indexPath里面对应的数据
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"tableview加载数据中。。。。。。");

    Person *person = tableData[indexPath.row];
    static NSString *simpleTableIdentifier = @"SimpleTableViewCell";
    SimpleTableViewCell *cell = (SimpleTableViewCell *)[_tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    cell.name.text = person.personName;
    cell.describe.text = person.personDescribe;
    cell.icon.image = [UIImage imageNamed:person.personIcon];

    return cell;
}

#pragma mark 返回indexPath这行的cell高度
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 72;
}

#pragma mark 点击事件
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"点击了这里");
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return NO if you do not want the specified item to be editable.
    return YES;
}

#pragma mark 左滑动可以选择删除
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [tableData removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

    } else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
    }
}

/******************UITableView*******END**********************/

其中Person是定义的一个类,里面包含personName,personDescribe,personIcon等三个属性,然后定义了一个类初始化方法(类似于构造函数)

+(Person*)initPersoneWithName:(NSString*)name Describe:(NSString*)describe Icon:(NSString*)icon;

还有个需要解释的类是SimpleTableViewCell类,它是继承自UITableViewCell的,可以用它来自定义TableView里面的数据的

显示,主要代码如下:.h文件

//
//  SimpleTableViewCell.h
//  PishumTableView
//
//  Created by Pishum on 15/7/29.
//  Copyright (c) 2015年 Pishum. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface SimpleTableViewCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UILabel *name;
@property (strong, nonatomic) IBOutlet UILabel *describe;
@property (strong, nonatomic) IBOutlet UIImageView *icon;

@end

.m文件

//
//  SimpleTableViewCell.m
//  PishumTableView
//
//  Created by Pishum on 15/7/29.
//  Copyright (c) 2015年 Pishum. All rights reserved.
//

#import "SimpleTableViewCell.h"

@implementation SimpleTableViewCell

- (void)awakeFromNib {
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end

需要提醒的是,在使用Storyboard的时候,在上面的2步骤中,设置TableView的cell时,需要给关联上刚才定义的

SimpleTableViewCell类,而且还要在Storyboard里给它设置identifier,在这里我设置的identifier是"SimpleTableViewCell"和

类名相同,这样可以避免忘记。

只要给tableData里面添加数据就好了,这里有个简单的添加例子,当然了方法有很多,在这里不多说了

-(NSMutableArray*)getTableData{
    NSMutableArray * array = [[NSMutableArray alloc]init];
    Person *person1 =[Person initPersoneWithName:@"刘备" Describe:@"双股剑" Icon:@"switch.png"];
    Person *person2 =[Person initPersoneWithName:@"关羽" Describe:@"青龙偃月刀" Icon:@"switch.png"];
    Person *person3 =[Person initPersoneWithName:@"张飞" Describe:@"丈八蛇矛" Icon:@"switch.png"];
    [array addObject:person1];
    [array addObject:person2];
    [array addObject:person3];

    return array;
}

源码下载地址

https://github.com/pishum/PishumTableView

本文原创,转载请注明出处

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 11:33:13

Xcode6 IOS开发UITableView基于Storyboard的使用的相关文章

iOS开发 UITableView的方法和属性总结

本文描述UITableView的各种方法,属性,委托以及数据源.本文的目的只是总结UITableView的用法,详细的例子另撰文描述. 1 数据源  UITableViewDataSource协议 01 返回组(节)的个数,默认是返回1,如果只有1组数据,可以不用实现该方法. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 02 返回某一组的行数,该组由section的值决定 - (NSInteger)table

IOS开发UITableView性能应用技巧TableViewCell的重用

?iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存.要解决该问题,需要重用UITableViewCell对象??重用原理:当滚动列表时,部分UITableViewCell会移出窗口,UITableView会将窗口外的UITableViewCell放入一个对象池中,等待重用.当UITableView要求dataSource返回UITableViewCell时,dataSource会先查看这个对象

iOS开发,UITableView相关问题

第一条:UITableViewCell 内容的设置 //文本放到最后 NSIndexPath *indexPath = [NSIndexPath indexPathForRow:_dataArr.count - 1 inSection:0]; [_tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]; //刷新指定cell NSIndexP

iOS开发UITableView基本使用方法总结

本文为大家呈现了iOS开发中UITableView基本使用方法总结.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITableViewDataSource:然后 UITableView对象的 delegate要设置为 self:然后就可以实现这些delegate的一些方法拉. UITableView基本使用方法 1.首先,Controller需要实现两个delegate ,分别是UITableViewDelegate 和UITable

为什么iOS开发不需要Storyboard( 转)

当我在Xcode中创建一个新的iOS项目,无论它是iPhone/iPad设备独占还是universal的,我做的第一件事总是删除Storyboard. 并且,和你们想象的不同,我并不是想用XIB来代替Storyboard,我完全不使用Interface Builder. Treehouse论坛对此有很棒的讨论,并且我听到的说法总是类似:Interface Builder会鼓励做出坏的实践. 因为我之前有在Window平台使用Visual Studio开发的经验,我可以很自信的说,Interfac

iOS开发--XLVideoPlayer——基于AVFoundation自定义的视频播放器

本文聊点关于最近写的这个自定义播放器.支持UITableViewCell上小屏.全屏播放,手动及屏幕旋转切换,包括右下角的小窗悬停播放,不依赖于视图控制器和第三方,尽量的让使用起来更简单,具体代码详情请戳Github,先看看效果如何! 这是基于AVFoundation下自定义的一个播放器,先简单介绍几个用到的类. 介绍: AVPlayer:可以理解为播放器对象,灵活性好,可以高度化的自定义UI,但它本身不能显示视频,显示需要另一个类AVPlayerLayer来显示,继承于CALayer,下面是摘

iOS开发教程:Storyboard全解析-第一部分

本文转载至http://blog.csdn.net/chang6520/article/details/7945845 感谢原文作者分享 故事版(Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果,我贴上本教程所完成的Storyboard的截图:   现在,你就可以清楚的看到这个应用究竟是干些什么的,也可以清楚的看到其中的各种关系,这就是Storyboard的强大之处了.如果你要制作一个页面很多很复杂的App,Storyboa

iOS开发-UITableView自定义Cell

UITableView在iOS中开发的重要地位是毋庸置疑的,基本上应用中用到的比例是一半左右,而且大部分情况都是需要自定义单元格的,这样用户看到的App才能更有美感.之前写过UITableView的基本用法,如果对UITableView不是很熟悉可以参考本人之前的博客,因此很多UITableView的知识点就默认你已经熟悉了,先看下自定义实现的效果,这是自定义的Cell最后展现的效果: 自定义Cell 1.首先新建一个CustomCell.xib文件,方式如下: 2.新建一个继承自UITable

iOS开发-UI (七)StoryBoard

知识点 1.UIStoryBoard介绍 2. UIStoryBoard的界面跳转 3. UIStoryBoard界面之间的传值 ========================= UIStoryBoard介绍 UIStoryBoard是你可以用来定义用户界面的一种新的方式,像xib.与xib不同的是它可以同时管理多个ViewController,而且可以在UIStoryBoard中配置ViewController 之间的跳转关系. 如果主窗口只有一个view controller是作为UISt