我的观点中有控件。所有物体都有不同的宽度和高度。我有一组这些对象。我需要编写递归函数,如果它们不适合当前行(类似于记事本或textedit),它将移动到我的对象的新行。
我想我们需要在循环中检查数组中的当前对象,如果它适合宽度,我们不做任何操作,如果它不适合当前视图(行)的宽度,我们应该进行递归。我对吗?当我们在数组中有对象时,将我们的对象移动到新行。
答案 0 :(得分:1)
你可以这样做(假设所有开头都是0.0):
NSArray* your_elements = ... //your elements in an NSArray (labels, buttons any type of views)
CGFloat currentX = 0.0;
CGFloat currentY = 0.0;
CGFloat maxX = 320.0;
CGFloat lineHeight = 12.0;
for (UIView* some_view in your_elements) {
CGRect newframe = some_view.frame;
newframe.origin.x = currentX;
newframe.origin.y = currentY;
currentX += newframe.size.width;
some_view.frame = newframe;
if (currentX>maxX) {
currentX = 0.0;
currentY += lineHeight;
}
}