我在最新的
Xcode和
Swift 2.1中遇到了一个奇怪的问题.
我有一张包含照片的表格视图.
可以点击其单元格进行编辑.
编辑后,例如更改照片或文本,以及展开到tableview.细胞是空白的.
我有一张包含照片的表格视图.
可以点击其单元格进行编辑.
编辑后,例如更改照片或文本,以及展开到tableview.细胞是空白的.
我终止应用程序并再次打开应用程序.表视图显示正确.我可以在编辑的单元格中看到新照片和新文本.所以这意味着储蓄没有问题.
我使用reloadRowsAtIndexPaths刷新已编辑的单元格.下面是我的代码.
@IBAction func unwindToTableView(sender: UIStoryboardSegue) { if let sourceViewController = sender.sourceViewController as? BexMaintain,bex = sourceViewController.bex { if let selectedIndexPath = tableView.indexPathForSelectedRow { bexs[selectedIndexPath.row] = bex tableView.reloadRowsAtIndexPaths([selectedIndexPath],withRowAnimation: .None) }}}
这里是cellForRowAtIndexPath
override func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cellIdentifier = "Cell" let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier,forIndexPath: indexPath) as! TableViewCell // Fetches the appropriate meal for the data source layout. let bex = bexs[indexPath.row] cell.name.text = bex.name //fetch thumbnail let thumbnailURL = bexURL.URLByAppendingPathComponent(bex.thumbnail) cell.file.image = UIImage(data: NSData(contentsOfURL: thumbnailURL)!) //fetch enable if bex.enable == false { cell.enable.setOn(false,animated: false) } else { cell.enable.setOn(true,animated: false) } return cell }
下面是问题的截图.
table is loaded first time
@L_403_3@
请帮忙建议.
解决方法
我现在可以解决这个问题了.
我注意到,有时按钮或照片出现在单元格中,但其位置与单元格的框架重叠.
我注意到,有时按钮或照片出现在单元格中,但其位置与单元格的框架重叠.
所以我认为这可能是布局问题.
然后我尝试在与iphone肖像相关的所有尺寸类中安装我的所有对象及其在Cell中的位置.
现在问题解决了.
以前,我只在尺寸类“紧凑宽度,任何高度”上工作.
我认为是Xcode错误,在展开到表视图后,Xcode将其他大小类布局为单元格,而不是在首次加载表时使用相同大小的类.问题不仅发生在模拟器中,也发生在设备中.
在将Xcode更新到最新版本之前,我以前从未发现过这个问题.
更新 – 2016年5月10日,
我仍然认为Final Value Size Class不会覆盖Base Value size class,这很奇怪.对每个大小的类安装对象和约束是不正常的.
所以我尝试从Compact宽度常规高度以外的所有大小类中卸载对象和约束.问题又回来了.
然后我尝试从故事板中禁用大小类,在弹出窗口中询问时仅保留iphone布局,然后再次重新启用它.现在问题已经消失.它必须在更新后在Xcode中的某个地方出现影响模拟器和已部署设备的错误.