2

我試圖創建一個具有用戶配置文件類似如下(第一圖像)的應用程序:https://dribbble.com/shots/1642506-Messaging-app-Viber/attachments/257232定製UICollectionViewFlowLayout

我在輪廓的底部特別感興趣,白線和下「跟隨我「部分。我的假設是,這是使用UICollectionView完成的,但如果我錯了,請糾正我,我將相應地編輯此問題。對於圖6層的元件,集合視圖看起來相當標準(其中,「O」表示的圓):
OOO
OOO

我不想讓他們對每個數低於6。我想被佈置爲這樣的他們要被集中。例如,5個元素將如下所示:
OOO
OO - >(三甲之間居中 - 降價空白)

4:
OO
OO

3:
OO或ooo(可能是前,空底線看起來凌亂)
o - >(居中排在前兩位 - Markdown空格之間)

2:
Ø
Ø

1:
Ø

如果您有任何更好的佈局建議,請讓我知道。所以,從上面可以看到,我希望佈局根據集合視圖的數據源中元素的數量進行更改。元素的數量永遠不會超過6.

此外,用戶可能能夠編輯其中一個配置文件,其中會出現「+」圖標,使集合視圖以(n + 1)佈局顯示。例如,編輯包含4個元素的配置文件的用戶將查看集合視圖佈局,就好像它具有5個元素,第五個元素是用於添加另一個元素的「+」號。用戶只能從已有6個元素的配置文件中刪除元素。

最初,我正在考慮根據集合視圖的indexPath.row和數據源中元素的數量使用一堆'if'和'switch'語句。但是,這似乎馬虎。有沒有辦法使用自定義UICollectionViewFlowLayout來做到這一點?無論哪種方式,如何實現這樣的佈局呢?

感謝您的任何建議提前。對不起,這個問題很長,我可以在必要時提供澄清。

回答

0

我覺得集合視圖是錯誤的解決方案。它們被設計爲在滾動網格或其他程序佈局中顯示任意數量的內容。您有1-6個按鈕,其美學佈局不易通過算法生成。

真的,你有一個5×2的安排,你要放置按鈕10「插槽」:

[] 
[56789] 

所有你需要做的是編程方式生成的位置,然後定義你的佈局爲數組「插槽」:

6項:@[0,2,4,5,7,9]

5項:@[0,2,4,6,8]

等等...

+0

如果收集視圖不是正確的解決方案,您有什麼建議?我覺得唯一的另一種選擇是有一堆級聯的「if」和「switch」語句,這些語句可能會讓所有幻數都變醜。 @約書亞 - 沙利文 –

相關問題