【问题标题】:Broken cell with an odd strikethrough?带有奇怪删除线的破碎细胞?
【发布时间】:2010-09-24 04:56:10
【问题描述】:

在我的 iPhone 开发体验中,我遇到了一个与特定 UITableView 相关的奇怪问题。如果你看下面的截图:

alt text http://dl-client.getdropbox.com/u/57676/brokencell.png

您会注意到穿过“Jane Aba”牢房中间的罢工。

知道是什么导致了这种奇怪的图形显示吗?对于模拟器和运行 2.2 SDK 的实际设备都是如此。

根据要求,这是我的-tableView:cellForRowIndexPath: 方法:

* 编辑 *

我找到了问题所在。我不完全确定为什么这是问题,但确实如此。在我的 RootViewController 中,我的 -initWithCoder: 方法中有以下代码行:

self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

当我将其注释掉时,单元格(不在 RootViewController 中,而是在辅助控制器中)已解决。知道为什么会这样吗?

【问题讨论】:

  • 这些是标准的 UITableViewCell 单元格还是子类?滚动表格时线条会移动吗?是在每个单元格中,还是仅在其中一个单元格中?
  • 嗨 Ben,这些是标准的 UITableViewCell 单元格。我还没有对复杂的单元格进行任何子类化。这条线确实随着单元格移动,并且只在一个单元格中,对于 Jane Aba。我的其他虚构角色没有删除线。
  • 您是否在表格中添加了任何子视图?您是否使用自定义表格行高?
  • 不幸的是,以上都没有。没有自定义,没有额外的子视图。
  • 另外,SDK 2.1 也会发生这种情况。所以这不是2.2。错误。

标签: iphone objective-c cocoa-touch uitableview


【解决方案1】:

我也遇到过类似的问题。对我来说,单行是由创建但从未正确调整大小或放置的多余视图造成的,因此 1 像素高,漂浮在其他所有内容之上。您还可以通过混淆 UINavigationController 的子视图集(通过将视图直接添加到其布局容器)来导致此问题。

查看您的 UI(xib 文件和以编程方式创建的视图),寻找不应该存在或未被使用的视图。编写一些代码来转储 UI 层次结构可能会有所帮助,这样您就可以看到哪些视图在哪里。

【讨论】:

    【解决方案2】:

    你在你的 -tableView:heightForRowAtIndexPath: 方法中做了什么特别的事情吗?

    在我看来,行的高度设置不正确,因此单元格的内容超出了其边界。

    【讨论】:

    • 没有添加那个方法,所以没有。这是有道理的,但如果这是问题所在。
    【解决方案3】:

    当您在 IB 中将表格视图的单元格高度设置为 1 像素时,问题就消失了。似乎在填充表格之前,使用 IB 中设置的单元格高度的轮廓绘制了一个空表格。 不要将单元格高度设置为 0。IB 不喜欢这样。 :-)

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-23
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2017-10-29
      相关资源
      最近更新 更多