TableView与delegate、dataResource

小梦这几天学习tableView是深有体会了

废话不多说,来一波

首先,创建一个测试项目

如图

创建好,在项目结构中另外弄一个GroupFile,创建storyBoard和CocoaTouch

在storyBoard里面放一个普通的tableView控件

给这个storyBoard做好准备工作{

  关联一个CocoaTouch类,

  并且设置这个storyBoard为第一个场景

}

接下来就开始在CocoaTouch类里写代码来操作storyBoard里的tableView

Swift代码:

import UIKit

class tableViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
    //来一个数组
    var stu = ["123":["xx","xxx","xxx"],"124":["xxx","xxx","xxx"],"125":["xxx","xxx","xxx"]].sorted(by: {$0.key < $1.key})

    //返回节的数量,这个是委派里的可选方法
    func numberOfSections(in tableView: UITableView) -> Int {
        return stu.count
    }

    //返回节的名称
    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return stu[section].key
    }

    //返回每个节下数据的条数
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return stu[section].value.count
    }

    //所有数据
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        //弄一个cellid单元格标识属性
        let cellid = "cellid"

        //拿到单元格对象,通过此方法的参数tableView来获取
        var cell = tableView.dequeueReusableCell(withIdentifier: cellid)

        //判断是否为空
        if cell == nil {
            //若为空,就给一个默认样式,不显示任何东西
            cell = UITableViewCell(style: .default, reuseIdentifier: cellid)
        }

        //反之就开始显示所有数据
        cell?.textLabel?.text = stu[indexPath.section].value[indexPath.row]

        //返回cell
        return cell!
    }
}

上面代码里,所有的方法都有注释解析

代码写好了,先别那么急

还有一步

在StoryBoard的树结构里,讲tableView关联好dataSource和delegate后

运行

完美实现,是不是很简单呢,当然,多加练习,谁都能从小白立马转大神级别

^_^

Thank

--------------------------------------------------Over

时间: 2024-10-06 20:05:46

TableView与delegate、dataResource的相关文章

IOS TableView的Delegate Methods-tableView didSelectRowAtIndexPath

选中tableView的indexPath.row这一行 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if (self.isFromChatView) self.chatViewController.phraseString = [self.phraseArray objectAtIndex:indexPath.row]; //else //self.n

如何利用TableView显示自定义nib中创建的UITableViewCell或子类?

1.创建nib文件 cell.xib 2.在nib中拖一个UITableView出来,设置其reuse Identifier,再根据cell UI需要拖出view摆放好 3.创建ViewController及tableview 4.创建TableView在ViewController中的输出口(IBOutlet) tableview 5.设置TableView的delegate和datasource(如果运行时发现所有表格单元为空白,很可能是这一步忘记做了) 6.viewDidLoad中注册ni

【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等

cocos2dx 3.0版本TableView拍生自ScrollView,常用来做滚动列表,有几种特殊用法,不知道大家用到过没 要求:1.滚动时不能选中TableCell,非滚动状态才能选中 很简单,在TableView的delegate函数中,通过isTouchMoved()函数来判断 void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::extension::Ta

iOS中TableView小技巧

摘要: TableView是ios开发中经经常使用到的控件,这里统一记录一下开发中遇到的经常使用小技巧,不断探索更新.也希望大家能够告诉我很多其它经常使用的小技巧啦~一起进步 1.去除多余的列表线条 原始的TableView在没有数据的行也会显示一条条的线条,不太美观,用一行代码能够解决,一般放在ViewDidLoad中 self.tableView.tableFooterView = [[UIView alloc] init]; 详细原理还没弄懂.知道的麻烦不吝赐教一下~ 2.选中列表条目后取

TableView的点击展开动画效果

效果 注:真机效果非常不错的哦 说明 1. 判断展开与否的逻辑由数据源Model处理 2. UITableViewHeaderFooterView的用法跟普通的cell用法一致 3. 以下的写法是应该单独封装成类的,因为是写demo,所以没有处理 源码 https://github.com/YouXianMing/HeaderViewTapAnimation // // ViewController.m // HeaderViewTapAnimation // // Created by You

TableView 总结

1.TableView图示: 1)style: 普通: 分组: 2)总体: 具体运用: 3)cell图示: 自带样式: 2.TableViewController 1)tableViewController默认的delegate和datasource为self,即所对应类. 2)只有tableViewController能使用static  cells,即直接在storyboard中绘制静态tableview,可连线实现outlet和action (设置后不需实现delegate和datasou

01.轮播图之二 :tableView 轮播

在做这个tablevew轮播的时候,重要的就是修改frame 和view 的翻转了:::: 也是不难的,概要的设计和scroll 轮播是一致的: 首先是 .h 的文件 @interface TableViewShuffling : UIView @property (nonatomic,strong)NSArray *array; @end 重要的点在.m 文件中加载了详细的注释 @interface TableViewShuffling ()<UITableViewDelegate,UITab

iOS页面间传递消息之Delegate

在开发应用的过程中,我们需要频繁地在界面之间传递消息,有时候是传递信息,有时候是传递一个信号即可.在iOS开发中,有多种传递信息的方式.比如最简单的,如果我们要在从一个界面进入另一个界面时给新界面传递一些消息,只需要给新界面定义一些属性,然后在创建新界面的时候设置其属性值即可. 那么如果要从新界面反过来传递信息给原先的界面怎么做呢,怎么建立起一个沟通的桥梁呢?iOS也提供了很多种方式,比如Notification.Block.UserDefault等等.本文就讲解最常见也是最常用的一种方式,几乎

iOS通讯模式(KVO、Notification、Delegate、Block、Target-Action的区别)

文章翻译自 https://www.objc.io/issues/7-foundation/communication-patterns/ 每个Application或多或少都有一些松耦合的对象(模块)组成,他们必须彼此通讯来完成工作.这篇文章将会通过可用的通讯机制,并以Apple的Framework来举例,并给出最佳的实践建议关于使用哪种通讯机制. 虽然这个问题是关于Foundation框架的,但是我们可以通过Foundation的通讯机制,差不多有这几个通讯方法 - KVO,Notifica