递归功能以创建文本编辑

Recursive function to create a text edit

本文关键字:文本编辑 创建 功能 递归      更新时间:2023-10-16

我在视图中具有控件。所有对象都有不同的宽度和高度。我有这些对象的数组。我需要编写递归函数,如果它们不适合当前行(例如在记事本或textediT中)。

我想我们需要在周期内从数组中检查当前对象,如果它适合宽度,我们不执行任何操作,如果它不适合当前视图的宽度(线),我们应该进行递归。我对吗?并在数组中具有对象时将对象移至新线路。

您可以这样做(假设所有内容始于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;
        }
    }