我有幾個文本字段和分隔視圖,它們之間的高度爲0.5像素,通過自動佈局設置。高度= 0.5的視圖並非總是在iPad 2上可見
問題:
有時候,一些分離是它們變得可見不可見的,其他的時間,但一些人變得不可見代替。
是因爲iPad 2的不具有Retina顯示屏和事情是小於1個像素得到四捨五入爲0或1像素?
如果是這樣,那麼最簡單的方法是讓這些設備的尺寸總是最大爲1像素?我正在考慮爲分隔符製作一個自定義的UIView子類,在Retina顯示屏上它的高度爲0.5,否則爲1像素。
我有幾個文本字段和分隔視圖,它們之間的高度爲0.5像素,通過自動佈局設置。高度= 0.5的視圖並非總是在iPad 2上可見
問題:
有時候,一些分離是它們變得可見不可見的,其他的時間,但一些人變得不可見代替。
是因爲iPad 2的不具有Retina顯示屏和事情是小於1個像素得到四捨五入爲0或1像素?
如果是這樣,那麼最簡單的方法是讓這些設備的尺寸總是最大爲1像素?我正在考慮爲分隔符製作一個自定義的UIView子類,在Retina顯示屏上它的高度爲0.5,否則爲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中很少見,但您的視圖可能會在外部屏幕上顯示。
聽起來像視網膜問題!
你可以做的是UIView類的擴展,它檢查視圖的寬度/高度是否小於1,屏幕是非視網膜,然後相應地將它舍入到1或0。
希望這會有所幫助!