2017-07-31 34 views
0

我有幾個文本字段和分隔視圖,它們之間的高度爲0.5像素,通過自動佈局設置。高度= 0.5的視圖並非總是在iPad 2上可見

問題:

有時候,一些分離是它們變得可見不可見的,其他的時間,但一些人變得不可見代替。

是因爲iPad 2的不具有Retina顯示屏和事情是小於1個像素得到四捨五入爲0或1像素?

如果是這樣,那麼最簡單的方法是讓這些設備的尺寸總是最大爲1像素?我正在考慮爲分隔符製作一個自定義的UIView子類,在Retina顯示屏上它的高度爲0.5,否則爲1像素。

回答

1

設置一個視圖的0.5的高度,對各種屏幕的問題。在iPad 2上,它可能導致視圖根本不可見,因爲它沒有視網膜屏幕,因此0.5pt線沒有相應的像素。在具有3x屏幕的iPhone Plus上,您很可能還會獲得別名效果。

要正確設置各種畫面的細線(從我可以說,這就是蘋果的表視圖分離例如做),你需要計算根據屏幕上的寬度。

鑑於你的接收器擁有您想要配置的線視圖UIView,這應該做的伎倆:

的Objective-C: CGFloat lineHeight = 1.0/self.contentScaleFactor;

斯威夫特: let lineHeight = 1.0/contentScaleFactor

你可以做那個例如在didMoveToWindow的視圖中,因爲當移動窗口時,尺度在理論上可以改變。這在iOS中很少見,但您的視圖可能會在外部屏幕上顯示。

1

聽起來像視網膜問題!

你可以做的是UIView類的擴展,它檢查視圖的寬度/高度是否小於1,屏幕是非視網膜,然後相應地將它舍入到1或0。

希望這會有所幫助!