2013-08-20 1 views
0

У меня возникла проблема с добавлением последней строки ячейки в мой tableView. Может кто-нибудь, пожалуйста, скажите мне, что не так с моим кодом, поскольку появляется последняя строка, но она также появляется в другом месте, когда таблица прокручивается вниз. Любая помощь будет принята с благодарностью, спасибо. Вот мой код:Добавление ячейки последней строки (которая не является частью таблицы sqlite) на tableView

@interface ViewOrderViewController : UIViewController < UITableViewDataSource, UITableViewDelegate> { 
    IBOutlet UITableView *tabView; 
} 


-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [appDelegate.vieworderArray count] + 1; 
} 

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"Cell"]; 
    } 
NSUInteger row = [indexPath row]; 

if(row == [appDelegate.vieworderArray count]) { 
    cell.textLabel.text = [NSString stringWithFormat:@"extra cell"]; 
}else{    
    Vieworder *vieworderObj = (Vieworder *)[appDelegate.vieworderArray objectAtIndex:indexPath.row]; 

    NSMutableString *mcmenuNameQuantity = [NSMutableString stringWithFormat:@"%@ X %i", vieworderObj.mcmenu_name, vieworderObj.mcmenu_quantity]; 
    UILabel *mcmenuLabel = [[UILabel alloc] initWithFrame:CGRectMake(45, 0, 200, 25)]; 

    [mcmenuLabel setFont:[UIFont systemFontOfSize:13.0f]]; 
    [mcmenuLabel setText:mcmenuNameQuantity];  
    UILabel *mcmenuPricexquantity = [[UILabel alloc] initWithFrame:CGRectMake(213, 0, 60, 25)]; 
    [mcmenuPricexquantity setFont:[UIFont systemFontOfSize:12.0f]]; 
    mcmenuPricexquantity.textAlignment = NSTextAlignmentRight; 
    NSMutableString *mcmenuPriceQuantityString = [NSMutableString stringWithFormat:@"%0.2f", vieworderObj.mcmenu_total_price]; 
    mcmenuPricexquantity.numberOfLines = 2; 
    [mcmenuPricexquantity setText:mcmenuPriceQuantityString]; 

    UIButton *deleteButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    deleteButton.frame = CGRectMake(12.0f, 0.0f, 25.0f, 25.0f); 
    deleteButton.tag = indexPath.row; 
    UIImage* imageDelete = [[UIImage alloc] init]; 
    imageDelete = [UIImage imageNamed:[NSString stringWithFormat:@"vieworder_delete.png"]]; 
    [deleteButton setImage:imageDelete forState:UIControlStateNormal] 
    [deleteButton addTarget:self action:@selector(performExpand:) forControlEvents:UIControlEventTouchUpInside]; 

    UIButton *editButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    editButton.frame = CGRectMake(280.0f, 0.0f, 25.0f, 25.0f); 
    UIImage* imageEdit = [[UIImage alloc] init]; 
    imageEdit = [UIImage imageNamed:[NSString stringWithFormat:@"vieworder_edit.png"]]; 
    [editButton setImage:imageEdit forState:UIControlStateNormal]; 
    editButton.tag = indexPath.row; 
    [editButton addTarget:self action:@selector(buttonClicked2:) forControlEvents:UIControlEventTouchUpInside]; 

    [cell.contentView addSubview:deleteButton ]; 
    [cell.contentView addSubview:mcmenuLabel]; 
    [cell.contentView addSubview:mcmenuPricexquantity ]; 
    [cell.contentView addSubview:editButton ]; 
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
}  
return cell; 

}

ответ

0

Используйте простейший код первого

[email protected][@"A",@"B",@"C",@"D",@"E",@"F",@"A",@"B",@"C",@"D",@"E",@"F",@"A",@"B",@"C",@"D",@"E",@"F",@"A",@"B",@"C",@"D",@"E",@"F",@"A",@"B",@"C",@"D",@"E",@"F",@"A",@"B",@"C",@"D",@"E",@"F"]; 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [arr count]+1; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:@"cell"]; 

    if (cell==nil) { 
     cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; 
    } 

    cell.textLabel.text=(indexPath.row==arr.count)[email protected]"End of Row":arr[indexPath.row]; 

    return cell; 
} 

Если он работает, то тогда должна быть какая-то проблема с еще состояние, когда вы добавляете несколько подвидов в ячейке .ContentView.