2012-10-05 44 views
2

力圖打造爲1個像素的高度iPhone:UIView的1個像素高度

 UIView *view = [[UIView alloc] inintWithFrame:CGRectMake(0,0,20,1)]; 

的UIView iPhone並未視網膜它的好,但在視網膜的外觀類似一個具有高度2像素

的哪些錯誤?

回答

17

關於視網膜的實際像素和UIKit像素是不同的。

試試這個:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,20,1/[[UIScreen mainScreen] scale])]; 
+2

這不是一個好主意,框架處理縮放。這就是爲什麼在視網膜上你仍然有320 x 480像素。 –

+2

這是做到這一點的正確方法 - 您的解決方案將是視網膜上的一個真實像素和非視網膜上的半個像素。我的解決方案是兩種情況下的一個真實像素。 –

+0

但我的解決方案保持正確的比例。您的解決方案會導致該線在非視網膜上佔據兩倍的空間。如果您想支持非視網膜,我認爲利用0.5像素並不是一個好主意。沒有人希望一次又一次地使用1/[[UIScreen mainScreen]比例]) –

1

這是因爲CGRectMake使用沒有像素。 在視網膜設備上,它們將dpi加倍,所以對於1分,您現在有2個像素。 在非視網膜設備上1點= 1像素

相關問題