Как я могу увеличить во время цикла Do-While? - PullRequest
1 голос
/ 11 августа 2011

У меня есть следующий код:

do {


    if ([[TBXML elementName:element] isEqualToString:@"wcqQuestionText"]) {
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 100)];
        label.text = [TBXML textForElement:element];
        [scrollView addSubview:label];
        [label release];
        [formulierText removeFromSuperview];

    }

    // if the element has child elements, process them
    if (element->firstChild) 
        [self traverseElement:element->firstChild];

    // Obtain next sibling element
} while ((element = element->nextSibling));

Каждый раз, когда пишется метка, я хочу, чтобы следующая метка располагалась под только что созданной меткой.Как мне это сделать?

1 Ответ

0 голосов
/ 11 августа 2011

Создайте переменную с плавающей точкой, чтобы отслеживать y положение рамки метки и увеличивать ее каждый раз, когда добавляется метка (вам также потребуется настроить contentSize прокрутки, если все метки не соответствуют его рамке):

static CGFloat y = 100.0f;

do {

    if ([[TBXML elementName:element] isEqualToString:@"wcqQuestionText"]) {
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, y, 200, 100)];
        label.text = [TBXML textForElement:element];
        [scrollView addSubview:label];
        [label release];
        [formulierText removeFromSuperview];
        y += 100.0f;
    }

    // if the element has child elements, process them
    if (element->firstChild) 
        [self traverseElement:element->firstChild];

    // Obtain next sibling element
} while ((element = element->nextSibling));

P.S. Рассматривали ли вы использование стандартного UITableView вместо собственного UIScrollView?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...