我的界面中有幾個CALayers,我直接將圖像繪製到圖層,而不是imageViews。UIImageView,CGImage和Retina藝術
這裏有一個片段:
UIImage *anImage = [UIImage imageNamed:@"anyImage"];
CGImageRef anImageRef = [anImage CGImage];
CALayer *aLayer = [CALayer layer];
CGFloat anImageWidth = CGImageGetWidth(anImageRef);
CGFloat anImageHeight = CGImageGetHeight(anImageRef);
CGRect layerFrame = CGRectMake(0,0,anImageWidth, anImageHeight);
[aLayer setLayerContents:(__bridge id)anImageRef];
[parentLayer addSublayer:aLayer];
所以我問題是,我得到不一致的結果與圖像的大小。在視網膜設備上,出現的圖像是預期尺寸的兩倍(例如,它匹配@ 2x圖像的像素尺寸)。在視網膜模式下的模擬器上,繪製到圖層的圖像是預期的大小(其中點與視網膜圖像的非像素點匹配)。
與此不同的是,靜態設置大小或減小大小(這可以糾正設備上的問題,但會中斷與非視網膜顯示器的兼容性),對此方案有什麼好的解決方案或解決方法?爲什麼會發生?
出於某種原因,我的大腦告訴我,scaleView是imageViews上的一個屬性,而不是圖像上,這就是爲什麼下一次我會詢問文檔。感謝您的提醒。 – isaac 2012-02-08 17:31:25