Строка uitableview отображает странное поведение - PullRequest
0 голосов
/ 22 февраля 2012

Я хочу создать два раздела 2 uitableview, поэтому я сделал следующий код

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    NSLog(@" I entered numberOfSectionsInTableView");
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {          
    if (section = 0 ) {  
        1;   
    }
    else {
        9; 
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    NSLog(@" I entered cellForRowAtIndexPath");
    NSLog(@"the Caf files count is : %d",[self.CafFileList count] );
    NSLog(@" the txt file %d",[self.TXTFileList count] );
    if (indexPath.section == 0 ) { // Enter here twice , even I say it contain only one row
        NSLog(@"////////////////////////Section 0 %d" , [indexPath row] );  
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }   
        [[cell textLabel] setText:[self.TXTFileList objectAtIndex:[indexPath row] ]   ];    
        return cell;    
    }
    else if (indexPath.section == 0 && indexPath.row < [self.TXTFileList count]  ){
        NSLog(@"////////////////////////Section 1 %d" , [indexPath row] );
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
        [[cell textLabel] setText:[self.CafFileList objectAtIndex:[indexPath row]]   ];
        return cell;
    }
}

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

if (indexPath.section == 0 ) {   

любая идея, как решить это

Ответы [ 2 ]

4 голосов
/ 22 февраля 2012

Вы не возвращаете номера строк в numberOfRowsInSection, вы просто вводите номер, но ничего не возвращаете.

Также

    if (section = 0 ) {  

устанавливает section до 0, вы хотите использовать оператор ==.

3 голосов
/ 22 февраля 2012
if (section == 0 ) {  
    return 1;   
}
else {
    return 9; 
}

Также ваш код:

else if (indexPath.section == 0 && indexPath.row < [self.TXTFileList count]  ){

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

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