Сбой при прокрутке uitableview - PullRequest
0 голосов
/ 11 ноября 2011

У меня есть uitableview, который вылетает при прокрутке.

Я пробовал утечки, собирал и анализировал, но не мог решить эту проблему.

получая ошибку ниже

*** -[CALayer retain]: message sent to deallocated instance 0xe192280

Ниже приведен код, который я запускаю.

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    UIFont *font = [UIFont fontWithName:@"Arial" size:13];


    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];

        NSInteger row = [indexPath row];

        cellRect2 = CGRectMake(135, 10, 5, 20 );
        lblColon = [[UILabel alloc] initWithFrame: cellRect2];  
        lblColon.font = font;
        lblColon.backgroundColor = [UIColor clearColor];
        lblColon.textColor =  [UIColor blackColor];         
        [cell.contentView addSubview: lblColon];
        lblColon.text = @":";           

        if (tableView == tblCompanyDetails) {

            switch (indexPath.section)
            {

                case 0:
                {
                    profileName = [appDelegate.arrCompanyProfile1 objectAtIndex:indexPath.row];

                    NSLog(@"appDelegate.arrCompanyProfile1 ------> %@", appDelegate.arrCompanyProfile1);

                    if(row == 0)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Company Name";    

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *str = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        //NSLog(@"str--------%@", str);
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 1)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Type of Company"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSLog(@"profileName.namelast--------%@", profileName);
                        //NSString *strLastName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 2)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Main Contact Person"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }
                    if(row == 3)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Address"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }
                    if(row == 4)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"City";    

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }

                    if(row == 5)
                    {

                        cellRect1 = CGRectMake(10, 10, 100, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"State";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 6)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Postal / Zip Code";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }
                    if(row == 7)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Country"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }
                    if(row == 8)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Primary Phone No.";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }
                    if(row == 9)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Mobile No.";  

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }       
                    if(row == 10)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Toll Free No.";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 11)
                    {

                        cellRect1 = CGRectMake(10, 10, 100, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Websites";    

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }   

                    if(row == 12)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Email Address";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }       

                    if(row == 13)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Number of Employees"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }       

                    if(row == 14)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Legal structure"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];                   
                        break;

                    }       


                }

                case 1:
                {           
                    profileName = [appDelegate.arrCompanyProfile2 objectAtIndex:indexPath.row];


                    if(row == 0)
                    {

                        cellRect1 = CGRectMake(10, 10, 100, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Primary"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 1)
                    {

                        cellRect1 = CGRectMake(10, 10, 120, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Secondary";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSLog(@"profileName section2 ----> %@", profileName);
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 2)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"No of years in business"; 

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                }

                case 2:
                {
                    profileName = [appDelegate.arrCompanyProfile3 objectAtIndex:indexPath.row];

                    if(row == 0)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20 );
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Postal / Zip Code";   

                        cellRect3 = CGRectMake( 145, 10, 180 ,20 );                 
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }

                    if(row == 1)
                    {

                        cellRect1 = CGRectMake(10, 10, 130, 20);
                        lblTitle = [[UILabel alloc] initWithFrame: cellRect1];  
                        //UIFont *font = [UIFont fontWithName:@"Arial" size:13];
                        lblTitle.font = font;
                        lblTitle.backgroundColor = [UIColor clearColor];
                        lblTitle.textColor =  [UIColor blackColor];         
                        [cell.contentView addSubview: lblTitle];
                        lblTitle.text = @"Coverage Area (miles)";   

                        cellRect3 = CGRectMake(145, 10, 180 ,20);                   
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }
                }

                case 3:
                {
                    profileName = [appDelegate.arrCompanyProfile4 objectAtIndex:indexPath.row];

                    if(row == 0)
                    {


                        lblColon.hidden = YES;

                        cellRect3 = CGRectMake(10, 10, 280, 40);                    
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14];
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   
                        break;

                    }
                }

                case 4:
                {
                    profileName = [appDelegate.arrCompanyProfile5 objectAtIndex:indexPath.row];

                    if(row == 0)
                    {


                        lblColon.hidden = YES;

                        cellRect3 = CGRectMake(10, 10, 100, 20);                    
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];   

                        break;

                    }
                }

                case 5:
                {

                    if(row == 0)
                    {

                        lblColon.hidden = YES;

                        cellRect3 = CGRectMake(10, 10, 100, 20);                    
                        lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
                        lblResult.font = font;
                        lblResult.backgroundColor = [UIColor clearColor];
                        lblResult.textColor = [UIColor blackColor];                 
                        [cell.contentView addSubview: lblResult];
                        break;

                    }
                }

            }   

        }

    }




    return cell;


}

Ответы [ 3 ]

2 голосов
/ 11 ноября 2011

Вы на самом деле не используете повторно какую-либо ячейку, потому что вы делаете все части внутри ячейки == nil code bloack, изменяя код примерно так

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    UIFont *font = [UIFont fontWithName:@"Arial" size:13];


    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];

        UILabel* lblColon = [[UILabel alloc] initWithFrame:CGRectMake(135, 10, 5, 20 )];  
        lblColon.font = font;
        lblColon.backgroundColor = [UIColor clearColor];
        lblColon.textColor =  [UIColor blackColor];         
        lblColon.text = @":";           
        [lblColon setTag:222];
        [cell.contentView addSubview: lblColon];
        [lblColon release];
    }

    NSInteger row = [indexPath row];
    UILabel* lblToReuse = (UILabel*)[cell.contentView viewWithTag:222];


    if (tableView == tblCompanyDetails) {
    //usual things you were doing earlier
   }

    return cell;

}

может вам немного помочь. Проверьте, не падает ли он после замены кода на этот.

0 голосов
/ 11 ноября 2011

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

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// ...
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];

Вы пытаетесь повторно использовать ячейку с идентификатором «Ячейка»?но когда вы создаете ячейку, вы создаете ее с помощью reuseIdentifier "MyIdentifier".Это плохо.Вы должны создать ячейку с тем же идентификатором:

cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

и переместить свою часть для индивидуальной настройки ячейки (в зависимости от indexPath) вне оператора if (cell == nil) {.Внутри этого утверждения вы должны только глобальную настройку для ваших ячеек.Настройте здесь только одни и те же вещи для всех ячеек в этом представлении.Потому что эта ячейка будет использоваться повторно для других ячеек.

Когда мы используем механизм повторного использования для ячеек, он пытается найти ячейку с идентификатором (вызывая [tableView dequeueReusableCellWithIdentifier:CellIdentifier]).Если он не найден, то вы создаете прототип ячейки с тем же идентификатором

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease];
}

и после этой части кода размещаете свой конкретный код для текущей ячейки (по указанному indexPath)

0 голосов
/ 11 ноября 2011

Где вы отпускаете все объекты, которые вы выделяете? Похоже, вы пытаетесь размещать одни и те же объекты снова и снова.

попробуйте следующий подход:

UILabel  *lblTitle = [[[UILabel alloc] initWithFrame: cellRect1] autorelease];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...