2013-04-02 80 views
-1

我正在以編程方式將UIButton添加到我的視圖中,並且我想根據定位更改重新定位它們。以編程方式在定位更改上重新定位添加了uibuttons

我正在創建按鈕,通過運行2 for循環行和cols和第二for循環: 我爲每個按鈕分配一些屬性和唯一標記。 (例如Best way to build 10x10 grid of UIButtons?

我通過偵聽willAnimateRotationToInterfaceOrientation檢測方向更改,並希望通過基於標籤將按鈕移動到新位置來調用按鈕。

我需要保持按鈕的狀態,所以我不能刪除它們。它必須重新定位。

有什麼建議嗎?謝謝。

+0

你只需問如何重新定位按鈕?如果是這樣的話,你可以使用'[UIButton setFrame:]',並將座標設置爲新的方向。 – cowfaboo

+0

你引用的問題/答案是舊的。這些天我會強烈考慮使用'UICollectionView'來執行這樣的任務。有關教程,請訪問http://www.raywenderlich.com/22324/beginning-uicollectionview-in-ios-6-part-12 – DBD

+0

問題是什麼?當你收到'willAnimateRotationToInterfaceOrientation'時你想重新定位按鈕嗎?繼續前進!有什麼問題? – matt

回答

0

使用此:

UIButton *button = (UIButton *)[self.view viewWithTag:1]; // change viewWithTag to your buttons tag number. Now you can use button to position it anyway you want. 
    button.frame = CGRectMake(x, y, w, h); // x, y, width, height 
+0

這工作!謝謝。 – chatu

1

有三種方法可以做到這一點。

1)使用口罩自動調整大小:使用這種方法,你不必做任何事情,按鈕自動復位基礎上爲按鈕設定一個相對於它的父的自動尺寸口罩。

2)第二種方法是在超級視圖旋轉後重新定位按鈕。您可以編寫一種方法,根據旋轉後超級視圖的新寬度和高度來計算該按鈕的新幀。有喜歡

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 

3)旋轉回調您還可以實現以下方法在按鈕的上海華和重置按鈕

- (void)layoutSubviews 

希望這有助於的幀。

相關問題