2012-03-14 50 views
9

我顯示與上一個UILabel一個UIView這種觀點&標籤變得非常模糊,一旦它到達這些線路代碼:模糊的UIView與CATransform3D僅在視網膜

CATransform3D transform = CATransform3DIdentity;  
transform.m34 = (1.0/-500); 
view.layer.transform = transform; 

整個應用程序我使用CA3DRotations和其他的東西,這從來沒有發生過。 此外,我只使用整數設置視圖的框架和標籤!所以這不是一個半像素問題或類似的問題,我知道這會導致最模糊的問題,但不是我的!

在它不是模糊的模擬器,iPad並不是模糊的,iPhone 3GS的不模糊。只有配備Retina顯示屏的iPhone4纔會變得模糊。甚至在我做3D旋轉之前!有沒有人在我瘋了之前有線索?

回答

23

好的,我找到了一個解決方案。 使用的代碼一百種不同的線路使用的圖層屬性,如層重力或放大倍率和噸的其他解決方案,我突然意外無意中發現了以下2行後:

self.layer.shouldRasterize = TRUE; 
self.layer.rasterizationScale = [[UIScreen mainScreen] scale]; 

這是解決方案!對於未來的每個人,您對視網膜顯示器的看法是否模糊?用這個!

+0

這也解釋了怪異的行爲(僅在視網膜顯示設備上不同位置)應用時,我我的CA3DTransforms!謝謝,你節省了好幾個小時! – bartolsthoorn 2012-06-18 10:48:06

+0

太棒了!非常感謝你! – JRod 2013-05-22 06:56:51

+1

不適合我。在視網膜上仍然模糊 – zumzum 2014-05-19 00:25:16

3

你有沒有爲層設置contentsScale匹配[UIScreen mainScreen]. scale?嘗試一下。

+0

有趣以前沒有聽說過這個,現在就試試吧! – 2012-03-21 08:46:00

+0

不幸的是,沒有工作...... – 2012-03-21 09:12:39

+0

會給你的賞金抽出時間來回答:) – 2012-03-21 14:08:51

0

有可能你的意見是「之間的像素」(例如中心是12.5,10])。嘗試四捨五入他們的位置,看看是否有幫助。

+0

嗨Sandoze,因爲在我的崗位明確地說,我設置使用整數幀,因爲我知道,通常這是一個「像素間」的問題:) – 2012-03-21 08:45:39

0

如果您的最終着陸位置旨在爲平/轉化的,簡單地設置變換到CATransform3D身份也將解決這個問題。根據動畫的方式,將其中一個3D變換的最終位置設置爲0.0仍然可以引入舍入誤差並給出模糊的外觀。

+0

這對於最終位置是正確的,但是,我希望它不會模糊在動畫中,以及:) – 2013-11-19 10:07:00

相關問題