2015-10-14 99 views
2

我想隱藏特定的分隔符UITableViewCell,並使用cell.separatorInset = UIEdgeInsetsMake(0.0, CGFLOAT_MAX, 0.0, 0.0);。這會在舊設備上造成非常奇怪的問題,並在新設備上完美工作。例如,在iPhone 5上,它會導致單元閃爍並模糊。將CGFLOAT_MAX更改爲像5000.0這樣的固定號碼會使所有問題消失。任何想法爲什麼發生這種情況使用CGFLOAT_MAX來隱藏UITableViewCell分隔符

+0

你有問題嗎? – dan

+0

任何想法爲什麼會發生這種情況或想法?對不起,如果你不能推斷這個問題... – jherg

+0

那麼iPhone 5是32位和新設備是不是所以如果我不得不猜測,我會假設有一個問題,使用CGFLOAT_MAX作爲一個幀值在32-位設備。 – dan

回答

0

在iOS 9.1上運行時,iPad上出現類似問題。在我的情況下,屏幕在啓動時閃爍黑色(我的手機在初始屏幕上)。或者每當我在iPad Air 2上使用拆分視圖;調整我的應用程序時導致閃爍,當我的應用程序呈現。

我有bug報告給蘋果公司,因爲我認爲我們應該可以使用CGFLOAT_MAX而不是神奇的高數字來達到同樣的效果。事實上,我甚至建議,也許我們應該有一個API來隱藏分隔符;在我自己要求這個之前,我確信很多。

rdar:// 23768136(只要我收到任何消息,我會在這裏更新)。與此同時,只需使用一個愚蠢的大數字,肯定會隱藏分隔符 - 類似5000.

0

該方法聽起來不明智。您可能最好關閉表格的默認分隔符,並讓您的單元格(減去隱藏的單元格)自己繪製它們,或者在其-drawRect:中,或者在每個單元格的頂部或底部添加一個薄視圖。

還有解決方案here-設置水平插入寬度爲單元寬度的一半,因此分隔符最終寬度爲0pt,但考慮到該文章中列出的更改歷史記錄,您可能期望結束也打破了。