一步一步--如何将tableview添加到nib

     2023-02-27     67

关键词:

【中文标题】一步一步--如何将tableview添加到nib【英文标题】:Step by step--how to add tableview to nib 【发布时间】:2015-09-09 12:32:17 【问题描述】:

我第一次使用 nib 文件并尝试添加一个带有 tableview 单元格的 tableview。我创建了一个 UIView 控制器类型的 nib 文件,然后将 tableview 拖到视图上,并在 viewcontroller.swift 中添加了所有必要的委托、数据源、cellForRowatIndexPath、numberOfRowsinSection 等,就像平常一样。但是应用程序在加载时崩溃。我查看了其他几个问题,尤其是这些:

Custom UITableViewCell from nib in Swift

Can't make UiTableView work

但是这些解决方案对我完全不起作用,并且在加载时仍然崩溃。我得到的另一个错误消息是“这个类不符合键值。”

那么,在 nib 文件中制作 uitableview 的具体步骤是什么?据我了解:

    文件-->新建-->文件-->Cocoa Touch 类-->子类 UITableViewController。这设置了表格视图。我们称之为 View1.swift

    文件-->新建-->文件-->Cocoa Touch 类-->子类 UITableViewCell。这会在表格视图中设置单元格。我们称之为 View1TableCell.swift

    在 View1.swift 中,注册 nib:

     tableView.registerNib(UINib(nibName: "View1", bundle: nil), forCellReuseIdentifier: "View1CellID")
    

    给单元格一个重用标识符。我们会说这是“View1CellID”

    在 View1.swift 中的 cellforRowAtIndexPath 中,使用正确的单元格标识符使单元格出列。

所以,所有这些步骤都应该有效,以便我可以将任何标签或按钮添加到我的 View1TableCell 笔尖,并且当我构建和运行时,这些更改将在 tableview 上看到,对吗?我做错了什么?

【问题讨论】:

添加一个所有异常断点,并告诉我们哪里出错了。 当前错误在单元格的出列处(在 cellforRowatIndexPath 中),错误内容为:“此类与键视图的键值编码不兼容。” 您使用的是 Storyboard 还是 Xibs? 你的 View1 类是否扩展了 UITableView 单元格? 我正在使用 Xibs。你是什​​么意思扩展 UItableview 单元格?我以前从未与 Xibs 合作过,所以我不太清楚你的意思。 【参考方案1】:

您注册的笔尖应该是包含单元格的笔尖,而不是视图控制器。来自 Apple 文档:

参数

一个 nib 对象,它指定要使用的 nib 文件 创建单元格。此参数不能为 nil。

【讨论】:

这有帮助。我更改了它,现在我没有收到任何错误并且 tableview 加载,但我的自定义单元格没有出现,它只是一个空白的 tableview。 cellforRowAtIndexPath 是否真的被调用(设置断点)?如果是这样,那里的代码是什么样的?【参考方案2】:

因此,根据您的解释,保存您的表格的视图是 View1。

如果你想实现一个自定义单元格,你需要创建一个新的类,来扩展 UITableViewCell。该类也应该有一个笔尖

所以新建一个类

类 MyCell: UITableViewCell

   override func awakeFromNib() 
        super.awakeFromNib()
        setupCell()
    

    func setupCell() 
        //setup your ui here
    

现在在 View1.swift 中,在 viewDidLoad 中,注册 nib

func viewDidLoad() 
     super.viewDidLoad()
     //register the nib of the cell for your cell
     tableView.registerNib(UINib(nibName: "MyCell", bundle: nil), forCellReuseIdentifier: "MyCellIdentifier")

现在使用表格视图中的单元格

  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCellWithIdentifier("MyCellIdentifier") as! MyCell
       //set the stuff you need in your cell
       return cell 

【讨论】:

Java Joda Time - 下载和安装 - 一步一步 [关闭]

】JavaJodaTime-下载和安装-一步一步[关闭]【英文标题】:JavaJodaTime-download,andinstall-stepbystep[closed]【发布时间】:2012-08-1918:25:44【问题描述】:我无法让JodaTime安装和工作。大多数说明都假设有一定的知识。是否有人可以假设我一无... 查看详情

一步一步教你将开源项目上传到jcenter

...来,希望能帮助到小伙伴们,现在觉得还是挺简单的。第一步:首先是注册,这就是我踩的最大的一个坑,导致我一天都没有上传成功。网上说的都是去jcenter的网站上注册就 查看详情

recyclerview源码学习:一步一步自定义layoutmanager

...章实现了一个简单的LayoutManager,重点在于从原理方面一步一步去了解如何自定义一个LayoutManager。麻雀虽小,但五脏俱全。从自定义LayoutManager的layout布局,到scroll滑动,再到添加简单的动画效果。其实,自定... 查看详情

如何将 Xcode 项目添加到另一个项目中?

...这些应用程序应该一起运行,可以吗?如果是,请告诉我一步一步的说明。我已经将一个项目添加到另一个项目中,但是在运行父项目时 查看详情

一步一步:如何进行 Xdebug 故障排除连接到客户端 IDE

】一步一步:如何进行Xdebug故障排除连接到客户端IDE【英文标题】:Step-by-step:HowtodoXdebugtroubleshootingconnectiontoclientIDE【发布时间】:2012-03-0823:41:15【问题描述】:背景将Xdebug与PHP和KomodoIDE以及EclipsePDT结合使用。Xdebug已安装在服务... 查看详情

java示例代码_将两个数组放入迭代器中,一步一步地进行

java示例代码_将两个数组放入迭代器中,一步一步地进行 查看详情

ansible一步一步从入门到精通

一:安装ansiblemac:1.安装Homebrew(gettheinstallationcommandfromtheHomebrewwebsite).2.安装Python2.7.x(brewinstallpython).3.安装Ansible(sudopipinstallansible).linux:如果系统中安装了python-pip和python-devel,你可以使用pip安装ansib 查看详情

如何在openGL中制作一步一步的显示动画?

】如何在openGL中制作一步一步的显示动画?【英文标题】:HowtomakeastepbystepdisplayanimationinopenGL?【发布时间】:2012-10-2121:13:59【问题描述】:?我正在做一个reprap打印机项目来读取GCode文件并将其解释为图形。现在我很难一步一步... 查看详情

一步一步学习identityserver3

idr添加验证码,授权方法中获取不到session,而且没有login页面的post方法,只有一个视图,而且是先加载视图,生成不了验证码我的解决方法是将验证写一个自定义mvc控件 利用viewdata数据获取验证码 然而又会有一个问题验... 查看详情

如何用idea一步一步开发webservice客户端程序

参考技术A1,MyEclipse关联tomcat在MyEclipse里点Run/Stop/RestartMyEclipseServers然后配置你的Tomcat路径2,把项目部署到tomcat,在1的左面有个部署按钮,先选择项目,然后添加tomcat,Redepoly部署,3,启动你的tomcat服务器4,搞定,MyEclipse关联tomcat... 查看详情

如何一步一步精通vim

vimhttps://github.com/ma6174/vim/tree/master/bundle/syntastichttps://github.com/ma6174/vim/blob/master/tips.md#快速注释本文出自“运维自动化”博客,请务必保留此出处http://shower.blog.51cto.com/4926872/1865252 查看详情

ansible一步一步从入门到精通

一:本地基础测试环境搭建使用vmware或者virtualbox创建一个linux虚拟机(我的是centos6.6),关闭iptables和selinux将上面的服务器地址加入上一篇bolg的hosts文件中exampegroup中同样配置ssh秘钥验证二:你的第一个playbook新建ntp.yml如下:---&nb... 查看详情

一步一步搭建svn服务之主干分支操作

    公司的项目越来越大,开发人员越来越多,项目中有不同的里程碑,也就是不同版本。软件开发的过程中,如果发现上一个版本有一个紧急BUG,并且需要立即发包修复。这个时候就进退两难,如果你做了版本管理,直接切换... 查看详情

ansible一步一步从入门到精通上

一:一个简单的Playbookplaybook比起shell脚本的优势,是幂等性,值得是运行一次和多次的结果都是一样的,不会对系统有影响一个简单的playbook:  1 ---  2 - hosts:  all  3   tasks: ... 查看详情

visualc++2010在写好的c程序后,如何一步一步查看程序的运行??

VisualC++2010在写好的C程序后,如何一步一步查看程序的运行??我是想看程序的运行过程。。我用的vs2012,不过原理都是一样的,打开你的程序,在上方菜单里,有调试选项,下拉选择里有逐语句调试(快捷键f11),点击逐语句... 查看详情

如何使用我自己选择的枢轴快速排序这些数据(一步一步)

】如何使用我自己选择的枢轴快速排序这些数据(一步一步)【英文标题】:Howtoquicksortthisdata(stepbystep)withmyownchosenpivot【发布时间】:2013-06-2414:11:47【问题描述】:我有数据(3是支点):281374我左右移动两个指针首先我有2和4,... 查看详情

如何用idea一步一步开发webservice服务器端

参考技术A创建WEB应用、再添加webservice,有向导一步一步的~~~ 查看详情

Spring Security:一步一步

】SpringSecurity:一步一步【英文标题】:SpringSecurity:StepbyStep【发布时间】:2011-01-2519:28:02【问题描述】:几个月前我开始学习Spring,安全主题对我来说似乎是最复杂的。随着Acegi进入Spring,我找不到一个教程来逐步说明如何为Spri... 查看详情