Каково будет количество строк для UITableView для отображения проанализированных данных XML? - PullRequest
0 голосов
/ 19 октября 2011

Я новичок в разработке приложений для iphone, поэтому, пожалуйста, кто-нибудь, помогите мне. Основная проблема -

-> после анализа xml я вставляю значение атрибута xml в nsarray, nsarray является объектомнеизменяемый массив.что-то в этом роде ...

[records addObject:[NSArray arrayWithObjects:
                            [TBXML textForElement:visitor],
                            [TBXML textForElement:uniqueVisitor],
                            [TBXML textForElement:order],
                            [TBXML textForElement:revenue],
                            [TBXML textForElement:conversionRate],
                            [TBXML textForElement:newProduct],
                            [TBXML textForElement:outOfStockProduct],
                            [TBXML textForElement:productInCart],
                            [TBXML textForElement:visitorInc],
                            [TBXML textForElement:uniqueVisitorInc],
                            [TBXML textForElement:orderInc],
                            [TBXML textForElement:revenueInc],
                            [TBXML textForElement:conversionRateInc],
                            [TBXML textForElement:newProductInc],
                            [TBXML textForElement:outOfStockProductInc],
                            [TBXML textForElement:productInCartInc],nil]]; 

Теперь я хочу, чтобы каждое значение атрибута отображалось по одному в каждой ячейке uitableview.но я не знаю, каким будет число строк в методе section.пожалуйста, помогите мне с любым телом. Я даю пример кода ....

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:    (NSInteger)section{
    NSLog(@"The number of row in the object array:  %d ",[records count]);
return [records count];
    }

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

Заранее спасибо.

1 Ответ

0 голосов
/ 20 октября 2011

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellPortrait";
UITableviewCell *cell;

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

// THIS CREATES THE CELL
NSInteger index = (page-1)*pagesize + indexPath.row;
NSDictionary* dataAtIndex = [records getDataAtIndex:index];
if (cell == nil) {
    cell = [[[myTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                   reuseIdentifier:CellIdentifier] autorelease];

    int x = 0;
    int cellsize = 50;
    int padding = 1;
    int nbxmlrecords = [[records objectAtIndex:indexPath.row] count];

    for (int idx = 0 ; idx < nbxmlrecords; idx++)
    {
            UILabel* aLabel = [[[UILabel alloc] initWithFrame:CGRectMake(x, 0.0,
                                                                         cellsize, cell.contentView.frame.size.height)] autorelease];
            x = x + cellsize + padding;

            aLabel.tag = idx;
            aLabel.font = [UIFont systemFontOfSize:10.0];
            aLabel.textAlignment = UITextAlignmentLeft;
            aLabel.textColor = [UIColor blackColor];
            aLabel.autoresizingMask = UIViewAutoresizingFlexibleHeight;
            aLabel.opaque = true;

            [cell.contentView addSubview:aLabel];
    }
}

// THIS FILLS THE DATA IN THE CELL
for (int idx = 0 ; idx < nbxmlrecords; idx++)
{
        NSString* value = [[records objectAtIndex:indexPath.row] objectAtIndex:idx];
        UILabel* aLabel = (UILabel *)[cell.contentView viewWithTag:idx];
        aLabel.text = value;
}

...

Конечно, вам нужно будет указать размер для каждого поля и общую длинуна экране.

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