重新定位以编程方式添加uibutton的方向更改

时间:2013-04-02 18:16:48

标签: ios uibutton

我正在以编程方式将UIButtons添加到我的视图中,我想根据方向更改重新定位它们。

我通过为行和列运行2 for循环以及在第二个for循环中创建按钮: 我为每个按钮分配了一些属性和唯一标签。 (例如Best way to build 10x10 grid of UIButtons?

我通过听willAnimateRotationToInterfaceOrientation来检测方向变化,并希望根据标签调用按钮将它们移动到新位置。

我需要保持按钮的状态,以便我无法删除它们。它必须重新定位。

有什么建议吗?谢谢。

2 个答案:

答案 0 :(得分:1)

有三种方法可以做到这一点。

1)使用自动调整遮罩:使用此方法,您无需执行任何操作,并且按钮会根据为超级视图设置的自动调整遮罩自动重新定位。

2)第二种方法是在超视图旋转后重新定位按钮。您可以编写一种方法来根据旋转后超级视图的新宽度和高度计算按钮的新帧。有像

这样的轮换回调
 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

3)您还可以在按钮的超级视图中实现以下方法并重置按钮的框架

- (void)layoutSubviews

希望这有帮助。

答案 1 :(得分: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