2009-06-29 46 views

回答

0

肯德爾,謝謝你的回答。

這裏是我的解決方案:

if(previousFrame.origin.x + theStringSize.width > 220){ 
      roundedButton.frame = CGRectMake(15, previousFrame.origin.y + 30 , theStringSize.width + 8, theStringSize.height); 
      [myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]]; 
     }else { 
      roundedButton.frame = CGRectMake(previousFrame.origin.x + previousFrame.size.width + 5, previousFrame.origin.y, theStringSize.width + 5, theStringSize.height); 
      [myContainer insertSubview:roundedButton belowSubview:[tagsContainer.subviews lastObject]]; 
     } 

我算算,我已經多少像素從左側移動。在某個閾值(在我的情況下是220),我開始一個新的行。

1

好像不是你做編程這些按鈕,或您reiszed初始IB視圖窗口要大,並預計其向下收縮到適合屏幕。

有問題的按鈕無法放在屏幕上,因爲它們是 - 您尋找什麼效果?

如果你想讓所有的按鈕都適合你,你可以將文字大小設置得更小,然後他們可以適應。

如果你想按鈕的大小,那麼你將不得不做另一行,或將按鈕放到側滾動容器。

1

我一直在使用java,最近纔開始學習Apple的Obj-C框架。

滾動和斷行的替代方法是使用「1」行和「n」列的「網格」佈局,其中n是按鈕的數量。每個單元格都有固定的大小。你將不得不在你的超級視圖的setNeedsLayout:方法中調整你的按鈕(子視圖)到任何你需要的寬度,使得所有的按鈕都適合這一行。

請參閱java的GridLayout類。