2011-01-10 38 views
9

我想讓一堆按鈕的行爲有點像float:left在CSS中。 因此,無論何時視圖改變大小,例如在方向改變時,按鈕都應該調整,以便它們適合其容器視圖。float:留在objective-c

在橫向模式下,這個UIScrollView應該水平滾動,縱向模式下,它應該垂直滾動。

我試圖在iPad YouTube應用中製作類似於「精選」標籤的ScrollView。橫向有4列,縱向:3列,「訂閱」標籤,縱向,同一視圖有2列。

alt text

+2

+1對於一個深思熟慮和提出的問題。我只對不起,我無法回答。 – Abizern 2011-01-10 17:10:41

+0

從我+1以及:) – Moszi 2011-01-10 23:31:08

回答

2

我實現了一個layout system做這樣的事情。有一個演示項目,介紹如何使用它檢入該存儲庫。我很樂意回答有關它的任何問題。這比AQGridView輕得多,所以如果你不需要他提供的額外功能,我會推薦一種類似於我的方法。

1

你可能想看看AQGridView,這基本上是一個重新實現Cocoa的NSCollectionView的:https://github.com/AlanQuatermain/AQGridView

否則,您可能需要重寫你的parentView layoutSubviews,然後重新排列子視圖(按鈕),因此當父視圖的尺寸發生變化時。

乾杯,

約翰內斯

0

如果你不得不(通過重載layoutSubviews)手動實現這一點,我認爲該算法是這樣的:

  1. 開始與X = 0,Y = 0(假設翻轉座標)
  2. 對於每個按鈕:
    1. 如果(X +按鈕寬度)>容器的寬度,設置X = 0,增加的Y(X,Y)
    2. 增加X通過按鈕的
    3. 地點按鈕寬度