我在UIScrollView中有多行子视图,我想在旋转到横向模式后重新排列。理想情况下,我希望每行有5个按钮,总行数由按钮高度确定,总共有多少按钮(加上一些填充)。
我遇到的问题是如何迭代子视图,同时在行的5个按钮上迭代x位置,然后在我按下5个按钮限制以开始新行后更改y位置。
现在我可以遍历子视图,但我不确定如何自动设置每行5帧,然后更改y位置以开始新行。非常感谢任何建议!
for (UIView *subview in someScrollView.subviews)
{
if (subview.tag >= 100) {
[subview setFrame: CGRectMake(x, y, buttonWidth, buttonHeight)];
NSLog(@"%.1f %.1f %d %d on subview %d", x, y, buttonWidth, buttonHeight, subview.tag);
}
}
答案 0 :(得分:1)
我打算把它想出来......谢谢你们。
对于肖像模式:
for (UIView *subview in outletScrollView.subviews)
{
if (x <= 320 && subview.tag != 0) {
[subview setFrame: CGRectMake(x, y, buttonWidth, buttonHeight)];
//NSLog(@"%.1f %.1f %d %d on subview %d", x, y, buttonWidth, buttonHeight, subview.tag);
x = x + buttonWidth + gapX;
if (x == 320) {
x = gapX;
y = y + buttonHeight + gapY;
}
}
}
对于横向模式:
for (UIView *subview in outletScrollView.subviews)
{
if (x <= 480 && subview.tag != 0) {
[subview setFrame: CGRectMake(x, y, buttonWidth, buttonHeight)];
//NSLog(@"%.1f %.1f %d %d on subview %d", x, y, buttonWidth, buttonHeight, subview.tag);
x = x + buttonWidth + gapX;
if (x == 480) {
x = gapX;
y = y + buttonHeight + gapY;
}
}
}