swift的UITableView的使用

UITableView是app开发中常用到的控件,功能很强大,多用于数据的显示。下面以一个简单的实例来介绍其基本用法。

先建一个工程

代码如下:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    private var dataSource: Dictionary<String, [String]>? //定义表格的数据源
    private var keyArray: [String]?
    private let cellIdef = "zcell"

    override func viewDidLoad() {
        super.viewDidLoad()

        //初始化数据
        demoData()

        var frame = self.view.bounds
        frame.origin.y += 20
        frame.size.height -= 20

        //初始化表格
        var tableView = UITableView(frame: frame, style: UITableViewStyle.Plain)
        //设置重用标志
        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: cellIdef)
        tableView.tableFooterView = UIView()
        tableView.dataSource = self
        tableView.delegate = self
        self.view.addSubview(tableView)

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }

    private func demoData() {
        dataSource = ["国家": ["中国", "美国", "法国", "德国", "意大利", "英国", "俄罗斯"],
                      "种族": ["白种人", "黄种人", "黑种人"]
                     ]
        keyArray = ["国家", "种族"]
    }

    // MARK: - UITableViewDataSource

    //设置表格的组数
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return keyArray!.count
    }

    //设置表格每组的行数
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        var array = dataSource![keyArray![section]]
        return array!.count
    }

    //设置表格的内容
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier(cellIdef, forIndexPath: indexPath) as UITableViewCell
        var array = dataSource![keyArray![indexPath.section]]
        cell.textLabel.text = array![indexPath.row]
        return cell

    }

    //设置每组的标题
    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return keyArray![section]
    }

    //MARK: - UITableViewDelegate

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        tableView.deselectRowAtIndexPath(indexPath, animated: true)
    }
}
时间: 2024-10-11 03:26:58

swift的UITableView的使用的相关文章

Swift 实现UITableView报错, does not conform to protocol &#39;UITableViewDataSource&#39;

Swift语言中的UITableView中着实很坑爹,为什么呢,因为在遵循协议后经常会报这样的错误:does not conform to protocol 'UITableViewDataSource'.而且是第一次尝试的伙伴们经常会发现,我写的代码没有问题呀,该写的都写了,为什么还是报错呢,有的时候是xcode的问题,有的时候又是自己遵循的协议中有必需实现的方法而没有实现导致的.所以遇到这种问题,大家不妨跳进代理中去看看必须实现的方法都实现的没有. 下面是我写的一个小demo,大家可以看看.

Swift 给UITableView 写extension 时 报错 does not conform to protocol &#39;UITableViewDataSource&#39;

那是因为你没有实现 数据源和代理方法 实现下就好了 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 0 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return UITableViewCell() } Sw

iOS开发——实战篇Swift篇&amp;UItableView结合网络请求,多线程,数据解析,MVC实战

UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高级知识:网络请求,JSON数据解析一起应用到一个项目中来. 好了,废话不多说,我们直接开始吧. 首先看看最终的效果: 是不是很简单,就是个UItableView显示一些简单的数据,如果你真的觉得太简单了,那么请绕道,寻找更深入东西,但或者没有你想的那么简单,这不仅仅是一个tableView,为什么呢

Swift之UITableView的使用

Swift和OC中UITableView的使用基本是差不多,只是有一些语法上的差异.下面我们一步一步从0开始写一个tableView. 一.创建tableView import UIKit let ID = "Cell" //cell的ID,建议像这样写一个常量,不要直接使用"Cell" class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { //0.遵

【swift_3】swift之UITableView和UINavigation视图控制器

Demo:链接: http://download.csdn.net/download/riven_wn/9401961 AppDelegate [objc] view plain copy var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { var VC = 

[iOS]swift之UITableView添加通过xib创建的headerView坑爹问题

情景是这样的,我UITableView添加了一个HeaderView,这个HeaderView是通过xib创建,是UIView.出来的结果却出乎意料,UITableView的Cell最顶部的几个被HeaderView给遮挡了---我勒个去--神马情况???!!! 于是哥通过看层次结构,发现运行出来的HeaderView和Cell列表不在同一层次,理应是同一层才对呀!!!!于是我用其他xib试试,情况一样,然后改用代码创建 UIView() 类似这种方式,这样就是正常的,HeaderView和Ce

swift中UITableView的简单使用

import UIKit /// TableViewDataSource展示 class YJTableViewDataSourceVC: UIViewController, UITableViewDataSource { /// 数据源 var data = [[Int]]() /// UITableView @IBOutlet weak var tableView: UITableView! // MARK: - view override func viewDidLoad() { supe

iOS开发——高级UI&amp;带你玩转UITableView

带你玩装UITableView 在实际iOS开发中UITableView是使用最多,也是最重要的一个控件,如果你不会用它,那别说什么大神了,菜鸟都不如. 其实关于UItableView事非常简单的,实际开发中用起来却没有那么简单就是因为他结合MVC使用,涉及到了模型数据的读取,自定义View,功能的拓展和更好的解藕,下面就带你玩一遍: UITableView的两种样式 UITableViewStylePlain UITableViewStyleGroupeds accessoryType UIT

iOS UITableView(一)

UITableview系列内容包括: 1.纯代码创建UITableview: 2.cell的样式.点击事件,cell的重用等: 3.页面的下拉刷新.上拉加载: 4.自定义cell. 由于内容过多,分成多篇来介绍. 本文主要介绍创建UITableview.cell的样式.cell的重用.cell的点击事件.cell左滑按钮等内容. 1.创建UITableview 首先在ViewController的类名后面添加UITableViewDelegate和UITableViewDataSource. 如