iOS 使用xib创建UITableViewCell的时候引用另外一个UITableViewCell时报错

来源:互联网 发布:jsp连接sql server2005 编辑:程序博客网 时间:2024/05/08 04:07

在我的工程新版本中,需要自定义一个新的cell如图,

而我的版本升级之前使用的是这样的cell


为了减少工作量,我决定使用之前的 cell 去掉背景之后直接放到新的 cell 上面,这样的话,我们创建的model,和一系列方法就能在新的cell中进行调用,省了不少事,但是问题出现了,但我运行程序的时候就会报错,如下 

UITableview Cell exception - 'Must translate autoresizing mask into constraints to have _setHostsLayoutEngine:YES

不得已,我只好求助强大的谷歌,果真有好多人遇到类似的问题,虽然报的错是相同的,但是产生的原因,却不尽相同,不过归根结底,原因都是,我们把UITableViewCell 使用在了  UITableView 以外 的其他 View上,某种意义上说 就是 UITableViewCell 和UITableView是放在一起用的,UITableViewCell 就像是鱼,UITableView就是水,鱼不能离开水而单独存在,但是,我之前确实使用过xib创建UITableViewCell 单独放在ViewController 的 视图上的,因为单独创建一个View 是不能直接创建xib文件的,需要后来关联,为了节省工作量,我就直接创建了一个UITableViewCell 这样view也有了xib也有了,而且也能正常使用,

这是个cell


在这里使用


我把这个cell 当做view 来使用 直接加载到了viewController.view上面而不是tableView上面是能够正常使用的,难道这就是另外一种情况了吗。


好吧让我们还回到原始问题上,为了解决这个问题,我又使用xib创建了一个view,内容是跟那个cell一样的,然后创建同样的  showModel 方法,再在我们的新cell中粘贴一个同样的view进去,然后就能调用同样的方法,而且不再报错 ,但是出现了另外一个棘手的问题,就是每当我们需要修改cell 中控件的时候,如果增加删除了东西,都需要在cell 和那个view中同时做同样的事情,不然就得不到修改的效果,这一点有些蛋碎,如果哪位客官解决过这类问题,欢迎前来探讨,

0 0
原创粉丝点击