一、自定的TableView
有的时候,我们需要vc视图中添加一个表视图,此时在ViewController中使用TableViewController是不可行的这就,因此就要使用自定义的TableView了。
如下图:
1、拖拽TableView:向ViewController中添加一个TableView,如果需要自己配置自定义的cell,可以添加进去,然后为这个cell创建一个继承自TableViewCell的类,绑定它即可。
2、设置代理:绑定ViewController为TableView的代理
3、将拖拽的TableView成为属性
4、实现协议中的三问
//-------------------------------实现过程--------------------------------
//在ViewController.m中
#import "ViewController.h"
@interface ViewController ()<UITableViewDataSource,UITableViewDelegate>
//将TableView置为属性,这样我们就可以访问它
@property (weak, nonatomic) IBOutlet UITableView *messageTableView;
//存储信息
@property(nonatomic,strong)NSMutableArray *messageArray;
@end
- (void)viewDidLoad {
    [super viewDidLoad];
//注册可重用的cell,这样我们就可以在第三问就可以dequeueReusableCell,如果是自定义的cell类,也是在这注册。
    [self.messageTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
//初始化可变数组(不可变的,可以不初始化)
    self.messageArray=[NSMutableArray new];
}
//——————————————----------------—实现协议的方法--------------------------------
#pragma TableView的协议
//1、第一问:回答有几段
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 1;
}
//2、第二问:回答每段有几行(Row)
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return self.messageArray.count;
}
//3、第三问:回答每行cell是什么
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell=[self.messageTableView dequeueReusableCellWithIdentifier:@"cell"];
    if(cell == nil){
        cell = [UITableViewCell alloc];
    }
    cell.textLabel.text=self.messageArray[indexPath.row];
    NSLog(@"self.messageArray[indexPath.row] = %@",self.messageArray[indexPath.row]);
    NSLog(@"cell.textLabel.text = %@",cell.textLabel.text);
    return cell;
}
//----------------------------End-----------------------------------
//----------------------------纯代码创建-----------------------------------
@interface MainViewController ()<UITableViewDataSource,UITableViewDelegate>
@property(nonatomic,strong)UITableView *tableView;
@end
@implementation MainViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupbackgroundView];
}
-(void)setupbackgroundView{ 
    //创建TableView
    self.tableView=[[UITableView alloc]initWithFrame:self.view.bounds];
    self.tableView.backgroundColor=[UIColor clearColor];
//设置代理
    self.tableView.delegate=self;
    self.tableView.dataSource=self;
    //设置分割线的颜色
    self.tableView.separatorColor=[UIColor colorWithWhite:0.1 alpha:0.3];
    //添加到view
    [self.view addSubview:self.tableView];
}
#pragma mark - tableview datasource
//将第一问删除,就会默认一个section
//第二问:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 15;
}
#pragma mark - tableview delegate
//第三问
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *ID=@"cell";
//去队列中获取可用的cell
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
    if (!cell) {//没有的话,就创建
        cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];
    }
    //设置cell的背景色
    cell.backgroundColor=[UIColor colorWithRed:0 green:0 blue:0 alpha:0.2];
    switch (indexPath.section) {
        case 0:
            cell.textLabel.text=HOURS;
            break;
        case 1:
            cell.textLabel.text=DAY;
            break;
    }
    return cell;
}
//----------------------------End-----------------------------------

自定的TableView的更多相关文章

  1. iOS高仿城觅应用客户端项目(开发思路和代码)

    这是一款非常完整的一个ios项目,基本实现了我们常用的一些功能了,而且界面设计个人感觉还是挺不错的,是一个不错的学习ios项目,喜欢的朋友可以参考一下吧. 项目展示,由于没有数据,所以所有的cell显 ...

  2. iOS高仿城觅-感谢大神分享

    项目展示,由于没有数据,所以所有的cell显示的都是我自己写的数据 抽屉 首页部分效果 首页效果 部分效果 发现 消息 搜索 设置 模糊效果 代码注释展示 代码注释展示 还有很多细节就不一一展示了,大 ...

  3. tableView中自定header视图的重用问题

    在UItableView中使用代理方发 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger ...

  4. IOS 非常流畅的滑动tableView

    为什么要写这篇文章呢?之前写过一篇,因为手机打字不是很方便,还有之前同事用6splus 定下午茶时候,我滑动列表时候竟然误以为是安卓系统的手机.   tableview 流畅度可以用fps来测试,到6 ...

  5. [IOS Tableview] cell自定义view显示错误问题

    问题介绍:按照tableviewcell的tag自定义cell的view显示的时候,会出现拖动时显示错误情况(在Tableview的范围超出屏幕范围需要滑动的情况下). 我做的是一个下载界面,我为了简 ...

  6. iOS之下拉放大,上推缩小,一个方法搞定

    先来看看效果吧. 讲讲大概的实现思路:1、创建头部的视图和tableview,需要注意的是tableview要设置contentInset,contentInsent 的顶部要和头部视图的背景图的高度 ...

  7. ios8 tableView设置滑动删除时 显示多个按钮

      ** *  tableView:editActionsForRowAtIndexPath:     //设置滑动删除时显示多个按钮 *  UITableViewRowAction          ...

  8. DEV GridControl TableView隔行换色/奇偶行换色

    GridControl中的TableView“奇偶行换色”这件事情纠结了我好几天,虽然已经是上个月的事情,好歹记录一下吧,万一有谁要用到呢. GridControl是长这个样子的, <dxg:G ...

  9. iOS UIKit:TableView之表格创建(1)

    Table View是UITableView类的实例对象,其是使用节(section)来描述信息的一种滚动列表.但与普通的表格不同,tableView只有一行,且只能在垂直方向进行滚动.tableVi ...

随机推荐

  1. GL_INTERFACE

    prompt ****************************************************************************** 总账接口主要完成其他模块的总 ...

  2. mysql导出csv/excel文件的几种方法,mysql的load导入csv数据

    方法一 php教程用mysql的命令和shell select * into outfile './bestlovesky.xls' from bestlovesky where 1 order by ...

  3. Webform——服务器控件与客户端控件

    Webform,即BS,浏览器应用. 关于服务器和客户端,在Webform 中,  服务器就相当于后台(也就是编辑C#代码的地方), 客户端相当于前台(也就是Html页面). 用法: ①如果想在服务器 ...

  4. Win32下 Qt与Lua交互使用(四):在Lua脚本中自由执行Qt类中的函数

    话接上篇.通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽. 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功 ...

  5. MySQL海量数据查询优化策略

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  6. MFC VS2005 添加Override 和 Message

    VS2005 1.Overrides OnInitDialog() 在Class View选中 这个类,然后properties中点Message 旁边的Overrides, 添加OnInitDial ...

  7. SSL双向认证(高清版)

    介绍了SSL双向认证的一些基本问题,以及使用Nginx+PHP基于它搭建https的Webservice. 之前的方式只是实现1:1的模式,昨天同事继续实现了n:1的模式,这里我再整理记录下. 由于n ...

  8. LoadRunner 参数化详解

    可能稍微对LR 有些了解的人都知道LR 参数化的功能,今天请跟我来一起好好理一下. 首先,咱们先说一下为啥要用参数化?假如您录制了一个登录的脚本,如下所示, web_submit_form(" ...

  9. 察看so文件的依赖关系

    使用arm-linux-androideabi-readelf 察看依赖动态库 /android-ndk-r8d/toolchains/arm-linux-androideabi-4.7/prebui ...

  10. N个数的数组求N-1个数组合乘积最大的一组

    /* 编程之美题,给定N个数的数组,只能使用乘法,不使用除法,找出N-1个数的乘积最大的一组,有两种方法,方法一:采用两个数组分别保存从左向右 和从又向左的两个乘积值,然后在扫描一次,求出最大乘积,空 ...