UITableView 的分隔線消失解法

聽說這是 iOS 7 的 bug。

iOS7-separator-disapper.png

我遇到的狀況就像圖中呈現的,在第二和第三個 cell 中間的分隔線不見了。 在 stackoverflow 查了一下,雖然操作法不太一樣,不過問題的根源應該是一樣的,就是 UITableView 在處理 select 事件的時候有問題,會導致分隔線消失。

在 stackoverflow 研究了一下,原來每個 separator 其實是屬於 UITableViewCell 的 subview,位置是在 cell 的底部,也就是說,以我的情況來說,是第二個 cell 的 separator view 不見了。

於是用下面的 code 強制顯現

 UITableViewCell *cell = /* The cell with hidden separator*/
 for (UIView *subview in cell.contentView.superview.subviews) {
     if ([NSStringFromClass(subview.class) hasSuffix:@"SeparatorView"]) {
         subview.hidden = NO;
     }
 }

Ref: http://stackoverflow.com/a/23498566/2467590

Contents

comments powered by Disqus