我想在我的iOS快速應用程序中創建一個類似風格Trover所做的畫廊,所以基本上我想有一個圖像數組,指定最大數量的圖像適合一行,然後我想動態生成UIImageViews
,其中由代碼確定的幀大小創建下面的拼貼效果。我知道這可以在Android中使用recyclerView
完成,但我不確定在iOS中最好的方法是什麼,我知道我可以使用TableView,CollectionView或StackView,但我不確定最簡單的方法是什麼是...我過去使用CollectionViews
的方式是因爲他們的CollectionViewCell
有一個靜態大小,因此我不確定如何使它們適應此目的。創建特洛伊風格畫廊iOS Swift
0
A
回答
1
從給出的圖片上的炒作,我們可以假設每4個項目,佈局是一樣的。因此,我們可以用一個UICollectionView
,我們可以(見注在回答結束)只需要重寫collectionView:layout:sizeForItemAtIndexPath:
與Objective-C的下面的代碼,但道理是一樣的斯威夫特:
CGFloat wholeWidthAvailable = collectionView.frame.size-interspace; //Since we only show 2 item per line, there is only 1 interspace
CGFloat height;
switch (indexPath.row%2)
{
case 0:
height = 100;
break;
case 1:
height = 200;
break;
default:
break;
}
CGFloat width;
switch (indexPath.row%4)
{
case 0:
width = wholeWidthAvailable*2./5.;
break;
case 1:
width = wholeWidthAvailable*3./5.;
break;
case 2:
width = wholeWidthAvailable*3./5.;
break;
case 3:
width = wholeWidthAvailable*2./5.;
break;
default:
break;
}
return CGSizeMake(width, height);
注意:
代碼沒有測試(我在這裏寫的,我不知道它是否編譯爲這樣)。
我明確寫了兩個開關的情況,但它顯然可以在一箇中使用,因爲模2和模4可以「加入」。
我已經選擇了2/5和3/5以適應寬度(但是您可以清楚地放置請你的比例)。
+0
如果我想做這個更復雜,例如有4種可能的佈局,其中一種包含2個圖像瀏覽,3,4和5,並隨機更改它們,在collectionViewCell類中或在像上面建議的collectionView委託方法中執行此操作會更容易 – Alk
相關問題
- 1. PHP特洛伊木馬
- 2. 在Rails中創建畫廊
- 3. 創建更新畫廊
- 4. 創建自定義畫廊
- 5. 評論風格畫廊...發表你的評論風格
- 6. iOS圖像畫廊
- 7. IOS滾動畫廊
- 8. 特拉維斯CI奇怪的失敗特洛伊
- 9. 創建菜單CNN iOS應用風格
- 10. 創建推特風格圖標
- 11. iOS自定義畫廊
- 12. 蒙特卡洛風格來評估整體MATLAB
- 13. 這是什麼嘗試了特洛伊木馬代碼呢?
- 14. 獲取使用FileSystemObject的特洛伊警告
- 15. 特洛伊插件功能的FileMaker WebDirect不工作
- 16. 弗洛伊德Warshall算法實現
- 17. 熊貓伊洛與直接切片?
- 18. 弗洛伊德最短路徑算法?
- 19. 使用弗洛伊德 - 斯坦伯格抖動不工作
- 20. PHP顯示畫廊風格頁面的頁面瀏覽量
- 21. 添加文件/風格/在亞歷克從蔚藍的畫廊
- 22. 畫廊風格佈局與CSS彈性箱?
- 23. 蘋果風格畫廊 - 圖像視差緩和
- 24. 如何實現流體寬度,畫廊風格的等距divs?
- 25. 創建畫廊的形象,創建一個文件夾
- 26. 在畫廊格式化
- 27. 全屏畫廊建議
- 28. 畫廊腳本的建議
- 29. Swift - 在風景中創建UIButton
- 30. 創建類的STL風格
使用UICollectionView,您可以使用自定義佈局。看起來,從你的屏幕截圖(我不使用應用程序,簡單的猜測),只有2種線,所以你甚至可能不需要創建一個完整的自定義佈局。根據它的索引行(這裏,我會說每4個單元格,它的大小相同)只是給出該項目的大小,它應該就足夠了。 – Larme
您是否建議可以說一塊照片是一個'UICollectionViewCell'並取決於我想如何佈局,我在該單元格內動態創建imageViews?例如,一個單元格可以有2個ImageViews或4個ImageViews等,我只是隨機選擇了我想要的設計? – Alk
我爲UICollectionView添加了一個示例代碼(在Objective-C中,但邏輯應該是相同的,沒有什麼真正複雜的,除了可能是「模數」,但其餘的看起來像很多Swift。 – Larme