2017-02-13 68 views
0

我想使用分辨率作爲實現iOS應用程序圖像的手段。如何實現不同分辨率的圖像

的iOS具有用於現代器件的下列決議:

iphone 5/SE:640x1136
iphone 6/7:750x1334
iphone 6/7 +:1242x2208
ipad的迷你/空氣:最高1536x2048
iPad的親:2048x2732


我正在創建該應用程序是景觀而已,所以我期待在創建5張的每張圖片,以配合必要的決議。

我在如何使用圖像集在xcode中實現這一點很困難。我可以創建1個圖像集,並擁有3個iphone插槽,以及3個ipad插槽。但是,這隻能滿足我想要創建的5個圖像中的3個:

iphone 6/7 @ 2x,iphone 6/7 + @ 3x和2x的ipad專業版。

有沒有一種方法來實現iphone 5和更小的Ipad的額外插槽?

我一直沒能找到一種方式,所以我想象我將不得不使用第二個圖像集,以添加2缺少的決議圖像。這就需要我在代碼中,讓視圖控制器根據設備的分辨率加載不同的圖像。

我很滿意這個額外的要求。我的問題是,這是實施這一戰略的正確方式?你將如何實現這一點?什麼可能是更好的策略?


注:我試圖避免的是限制獲取視圖所需的約束數量,以期望的方式。我開始使用一款應用程序,並且我使用了基於長寬比的2張圖片,我認爲這很棒,但是iPhone 4卻把所有東西都扔掉了。然後我瞭解到,也許我不應該擔心iPhone 4已經過時。因此,我要麼使用2圖像方法從頭開發UI,要麼嘗試使用這種分辨率的圖像方法。

我是一名新開發人員,所以我非常感謝您的幫助,如果我太冗長,我很抱歉,我希望這可以幫助其他人,而且我發現詳細無疑是學習時最好的方式。謝謝你的任何信息!

回答

0

我不知道什麼樣的圖像,你想用,但猜測,只是用漸變或素色背景圖片,我想你可以這樣做:

一)創建的圖像組,將最高分辨率,中間和最低的國家之一,也許是這樣的: 1X:640x1136,2倍:1242x2208和3倍:2048x2732

b)接着使用該代碼,確保圖像被正確地調整使用該圖片集查看:

UIGraphicsBeginImageContext(self.theView.frame.size); 
[[UIImage imageNamed:@"backgroundImageSet"] drawInRect:self.view.bounds]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
self.theView = [UIColor colorWithPatternImage:image]; 

希望這有助於!

+0

一些事情,iPhone 5/SE是一個@ 2x設備,所以我不明白爲什麼要將該分辨率添加到1x。此外,這5幅圖像不僅限於背景圖像。最後,我認爲我沒有提到它,但是我的所有圖像都將加載到故事板以及圖像中。需要代碼的例外是基於設備,我可能需要更改圖像以匹配iPhone 5/SE和較小Ipad的資源。我會使用5張圖片,這樣我就不需要在代碼中調整它們的大小。感謝您的迴應。所有的[]是什麼是一個客觀的東西? – Discoveringmypath

+0

我認爲你應該更清楚地解釋你想要做什麼並且更加一致。現在我不確定你想要做什麼,這是一個客戶,1x:640x1136,2x:1242x2208和3x:2048x2732的圖像設置可以很好地從iPhone 5移動到iPad。另一方面,我絕對不知道你的界面是怎麼樣的,所以,這就是我所說的,如果它只是「用於背景」。你也可以用約束來處理這個問題,如果是這樣的話,它不應該有很多限制。 –

+0

所以我重讀我的文章,我沒有看到任何一致性問題,我想我很清楚我想要什麼。我的評論不是對你的攻擊。這是我試圖理解你的答案。這就是說,你對圖像集的建議顯然是有缺陷的。 iPhone 5永遠不會拉1x圖像,所以擁有該分辨率沒有意義。我也看到你把ipad pro的分辨率作爲3x圖像。 Ipad是一個2x,所以它永遠不會使用3x圖像。除非我在這裏錯了,否則我不知道你的解決方案如何回答我的問題。再次,我欣賞反饋。 – Discoveringmypath

1

雖然您無法將其他插槽添加到.xcassets,但您可以在.storyboard文件中實施size classes。這是爲每個設備設計獨特界面的簡單方法。使用它你可以爲iPhone 4設計漂亮的界面(但是,它已經過時了,就像你在OP中指出的那樣)。

+0

我已經使用大小類來實現不同的約束,具體取決於設備的類別。如果我有5個分辨率,那麼每臺設備就不需要縮小比例。我想我正在試圖看看如何實施該策略。 – Discoveringmypath