Ios 在方向更改时重新定位以编程方式添加的UI按钮

Ios 在方向更改时重新定位以编程方式添加的UI按钮,ios,uibutton,Ios,Uibutton,我正在以编程方式将UIButtons添加到视图中,并希望根据方向更改重新定位它们 我通过为行和列运行2个for循环,并在第二个for循环内创建按钮: 我正在为每个按钮分配一些属性和唯一标记。(例) 我通过听WillAnimateRotationInterfaceOrientation来检测方向的变化,并希望根据按钮的标签来调用按钮,将其移动到新位置 我需要保持按钮的状态,以便无法移除它们。它必须重新定位 有什么建议吗?谢谢 有三种方法可以做到这一点 1) 使用自动调整大小的遮罩:使用这种方法,您

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

我通过为行和列运行2个for循环,并在第二个for循环内创建按钮: 我正在为每个按钮分配一些属性和唯一标记。(例)

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

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


有什么建议吗?谢谢

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

1) 使用自动调整大小的遮罩:使用这种方法,您无需执行任何操作,按钮将根据为按钮设置的相对于其superview的自动调整大小遮罩自动重新定位

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

 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
3) 您还可以在按钮的superview中实现以下方法并重置按钮的帧

- (void)layoutSubviews
希望这能有所帮助。

使用以下方法:

    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

你只是问如何重新定位按钮?如果是这种情况,您可以使用
[UIButton setFrame://code>将坐标设置为新方向上有意义的任何坐标。您引用的问题/答案是旧的。现在,我将强烈地考虑使用<代码> uICLoopDebug视图>代码>来预处理这样的任务。关于教程访问,问题是什么?当您收到
WillAnimateRotationInterfaceOrientation
时,是否要重新定位按钮?去吧!有什么问题吗?@matt我怎么能用每个按钮的标签来确定目标呢。也许我对此有意见。谢谢。创建按钮网格时,请确保将所有按钮放入一个数组中。然后使用该数组访问每个按钮,如果需要,检查它们的标记,重新定位它们-无论您需要什么。