2015-05-23 46 views
0

我正在iOS上創建照片應用程序。 應用程序以全分辨率拍攝照片(所有設備屏幕)。該應用程序允許您添加內容到照片作爲貼紙和其他。問題在於iPhone 6/6 +和4s的尺寸差異太大。如果用戶在iPhone 6上操作照片的底部,這將不會在iPhone 4s上顯示,並且在iPhone 5/5s上不顯眼。 怎麼回事Snapchat你管理所有的屏幕尺寸? 是否有一些技巧來解決這個問題?所有Apple設備上的iOS應用程序照片

+0

其實相機在每臺設備上拍攝的圖片分辨率要比屏幕上顯示的高得多。所以它與單個設備無關,而是如答案中所證明的那樣,計算縱橫比,允許您向上/向下縮放圖像。 –

+0

感謝您的建議。 – user2724028

回答

2

您可以使用Apple的「Scale to Fit」的想法。這意味着你會盡可能地擴大圖像的大小,但沒有任何圖像出現在屏幕之外。在你的情況下,圖像通過採取介紹iPhone 6/6 +將有2個黑色區域的左側和右側,當在iPhone 4的顯示

規模,你可以使用這一招

float scaleWidth = view.frame.size.width/image.size.width; 
float scaleHeight = view.frame.size.height/image.size.height; 

float scale = MIN(scaleWidth, scaleHeight); 

CGSize newSize = CGSizeMake(image.size.width * scale, image.size.height * scale); 
+0

這裏的術語不是'scale',而是'(aspect)ratio'。 (在知道正確的詞彙時查找起來更容易) –

+0

「適合縮放」是Apple的一個術語。並且,縱橫比=寬度:高度。在我的代碼中,沒有寬高比的地方。我用相同數量的圖像的多個高度和寬度保持圖像的縱橫比。 –

+1

聽起來不錯。我會嘗試。 – user2724028

相關問題