iOS: установка переменных для нескольких пользовательских объектов просмотра - PullRequest
0 голосов
/ 07 марта 2012

Хорошо, я создаю номер X пользовательского UIView, который я создал в IB ... Я создаю их в виде сетки и мне нужно установить их индивидуальные свойства на основе ответа из Интернета.вызов службы ...

Часть, с которой у меня возникают проблемы, состоит в том, как перебирать различные UIViews и устанавливать переменные ...

Я уверен, что решение действительно простое, но я уже давно смотрю на это вслепую ...

Это часть после:

            if([theStatus.groupName isEqualToString:groupEntry.groupNameLabel.text])
            {

Вот весь метод:

- (void)receivedGroups
{
    int rows, columns;

    if([groupConnection.groupsArray count] <= 4)
    {
        rows = 1;
        columns = [groupConnection.groupsArray count];
    } else if([groupConnection.groupsArray count] >= 5 && [groupConnection.groupsArray count] <= 8)
    {
        rows = 2;
        columns = ([groupConnection.groupsArray count] + 1 )/ 2;
    } else
    {
        rows = 3;
        columns = ([groupConnection.groupsArray count] + 2 )/ 3;
    }

    int number = 0;

    for(int j=1; j < columns+1; j++)
    {
        for(int k=0; k < rows; k++)
        {
            // Only create the number of groups that match the number of entries in our array
            if(number < [groupConnection.groupsArray count])
            {
                // Create an instance of the group view
                GroupEntry *groupEntry = [[GroupEntry alloc] initWithFrame:CGRectMake(230*j, 250*k, 180, 233)];

                // Add it to the view
                [self.view addSubview:groupEntry];

                // Get the group
                GetGroupsActive *theGroups = [groupConnection.groupsArray objectAtIndex:number];

                groupEntry.groupNameLabel.text = theGroups.groupName;

                for(int i=0; i<[statusConnection.statusArray count]; i++)
                {                        
                    CurrentStatus *theStatus = [statusConnection.statusArray objectAtIndex:i];

                    if([theStatus.groupName isEqualToString:groupEntry.groupNameLabel.text])
                    {
                        //allChildren++;

                        switch(theStatus.currentStatus)
                        {
                            case 0:
                                //childrenSick++;
                                break;
                            case 1:
                                //childrenVacation++;
                                break;
                            case 2:
                                //childrenPresent++;
                                break;
                            case 3:
                                //childrenOut++;
                                break;
                            case 4:
                                //childrenTour++;
                                break;
                            default:
                                break;

                        }
                    }
                }

                NSString *allLabelText = [NSString stringWithFormat:@"%i", allChildren];
                NSString *sickLabelText = [NSString stringWithFormat:@"%i", childrenSick];
                NSString *vacationLabelText = [NSString stringWithFormat:@"%i", childrenVacation];
                NSString *presentLabelText = [NSString stringWithFormat:@"%i", childrenPresent];
                NSString *outLabelText = [NSString stringWithFormat:@"%i", childrenOut];
                NSString *tripLabelText = [NSString stringWithFormat:@"%i", childrenTour];

                groupEntry.sickLabelNumber.text = sickLabelText;
                groupEntry.presentLabelNumber.text = presentLabelText;
                groupEntry.numberLabelNumber.text = allLabelText;
                groupEntry.tripLabelNumber.text = tripLabelText;
                groupEntry.outLabelNumber.text = outLabelText;
                groupEntry.vacationLabelNumber.text = vacationLabelText;

                // Create the buttons to handle button press
                UIButton *childButton = [UIButton buttonWithType:UIButtonTypeCustom];

                childButton.frame = CGRectMake(230*j, 250*k, 180, 233);

                // Set an identity tag, so we can recognize it during button press
                childButton.tag = theGroups.ID;

                // When EventTouchUpInside, send an action to groupSelected:
                [childButton addTarget:self action:@selector(groupSelected:) forControlEvents:UIControlEventTouchUpInside];

                // Add it to the view
                [self.view addSubview:childButton];
            }

            number++;
        }
    }
}

1 Ответ

0 голосов
/ 07 марта 2012

Если вы добавили все представления в родительском представлении. Вы можете получить все подпредставления, используя,

NSAarry *subviews = [base subviews];
for(UIView *subview in subviews)
{
subview.property = yourVaule;
}

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

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