我在将最后一个单元格行添加到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 :(得分:0)
首先使用最简单的代码
arr=@[@"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)?@"End of Row":arr[indexPath.row];
return cell;
}
如果它正常工作那么你的其他情况应该会有一些问题,你要向cell.ContentView添加多个子视图。