我有一个UITableView,其中一个右侧细节单元格和滚动禁用,表格高度设置为44(与单元格相同)。单元格显示表示A类对象的数据。当用户点击单元格时,它会用表格推送一个新VC来选择A类的新对象。但是当我弹回旧VC并调用{{1}时在reloadData
中,viewWillAppear
已完全更改且不可见。
所以在这个日志中,第一行是对detailTextLabel.frame
(对象1)的初始调用,一切都正确显示。第二行是在选择对象2(cellForRowAtIndexPath
的空字符串)之后。第三行是在再次选择对象1之后,之前正在工作的detailTextLabel
现在是不可见的。
detailTextLabel
我已在故事板中设置了具有正确重用ID的表,并且正在调用2015-03-28 10:48:11.747 dojo[32523:5852510] detail text label: <UITableViewLabel: 0x15d5de470; frame = (463 12; 42 20); text = '1234'; opaque = NO; autoresize = RM+BM; layer = <_UILabelLayer: 0x17429a810>>
2015-03-28 10:48:20.374 dojo[32523:5852510] detail text label: <UITableViewLabel: 0x15d5de470; frame = (468.5 13; 36.5 19.5); text = ''; autoresize = RM+BM; layer = <_UILabelLayer: 0x17429a810>>
2015-03-28 10:48:23.192 dojo[32523:5852510] detail text label: <UITableViewLabel: 0x15d5de470; frame = (505 13; 0 0); text = '1234'; autoresize = RM+BM; layer = <_UILabelLayer: 0x17429a810>>
来获取单元格;
更新:gist for VC
更新2:我无法上传整个项目,但我已经创建了一个demo project,其中包含一部分实际代码(略有修改后的依赖项),这些代码存在同样的问题。
答案 0 :(得分:2)
在查看您的代码后,这似乎是Apple代码中的一个错误。如果我在设置文本后使用sizeToFit(并且有一个要查看的车辆号码),则显示该号码,但是在您按下然后再次弹回之前,人字形会消失;这绝对不是它应该工作的方式。当没有vehicle.number而不是空字符串时,您可以通过将单个空格作为文本传递来轻松地绕过它。所以,
[cell.detailTextLabel setText: vehicle.number ? : @" "];
而不是这个,
[cell.detailTextLabel setText: vehicle.number ? : @""];
日志中的数字仍然落后;也就是说,在日志中看到正确的帧之前,您需要再次按下并弹出,但标签和V形符号都会正确显示。