-1

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

我通过为行和列运行 2 个 for 循环以及在第二个 for 循环中创建按钮:我为每个按钮分配了一些属性和唯一标签。(例如,构建 10x10 UIButtons 网格的最佳方法?

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

我需要保持按钮的状态,所以我不能删除它们。它必须重新定位。

有什么建议么?谢谢。

4

2 回答 2

1

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

1)使用自动调整掩码:使用这种方法,您无需做任何事情,按钮会根据为按钮设置的自动调整掩码相对于其父视图自动重新定位。

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

 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

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

- (void)layoutSubviews

希望这可以帮助。

于 2013-04-02T18:33:09.727 回答
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
于 2013-04-02T20:08:32.187 回答