我有一個tableview包含30個字段(標籤,文本框,星級和其他一些UIView,picercontrol)。問題是,當我滾動表格視圖時,單元格被替換。任何解決方案? 編輯:Tableview在滾動過程中的奇怪行爲
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ReuseCell";
// UIColor* mainColor = [UIColor colorWithRed:43.0/255 green:128.0/255 blue:191.0/255 alpha:1.0f];
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
if (indexPath.section==0) {
if (indexPath.row==0) {
productImage=[self createImageWithFrame: CGRectMake(115.5, 10, 89,89)];
productImage.tag=indexPath.row+indexPath.section;
[cell.contentView addSubview: productImage];
}
else{
titleLabel1=[self createLabelWithFrame:CGRectMake(4, 5, 100, 30)];////normal label
titleLabel1.tag=indexPath.row+indexPath.section;
[cell.contentView addSubview:titleLabel1];
titleLabel1.text=[labelArray objectAtIndex:indexPath.row-1];
if (indexPath.row==2) {
productImage=[self createImageWithFrame: CGRectMake(104, 10, 190,20)];
productImage.tag=indexPath.row+indexPath.section;;
[cell.contentView addSubview: productImage];
}
else if (indexPath.row==7) {
titleLabel1=[self createLabelWithFrame:CGRectMake(4, 5, 100, 30)];////time label
titleLabel1.tag=indexPath.row+indexPath.section;
[cell.contentView addSubview:titleLabel1];
}
else if (indexPath.row==8) {
titleLabel1=[self createLabelWithFrame:CGRectMake(4, 5, 100, 30)];///time label
titleLabel1.tag=indexPath.row+indexPath.section;
[cell.contentView addSubview:titleLabel1];
}
else if (indexPath.row==9) {
descriptionText=[[UITextView alloc]initWithFrame:CGRectMake(104, 10, 190, 50)];
descriptionText.tag =indexPath.row+indexPath.section;
[cell.contentView addSubview:descriptionText];
}
else{
textFld=[self createTextFieldWithFrame:CGRectMake(104, 10, 190, 20)];
textFld.tag=indexPath.row+indexPath.section;
[cell.contentView addSubview:textFld];
textFld.text=[labelArray objectAtIndex:indexPath.row-1];
}
}
}
}
///////trying to resuse the cell
if (indexPath.section==0) {
if (indexPath.row==0) {
productImage=(UIImageView *)[cell.contentView viewWithTag:indexPath.row+indexPath.section];
//productImage.image=
}
else{
titleLabel1=(UILabel *)[cell.contentView viewWithTag:indexPath.row+indexPath.section];
titleLabel1.text=[labelArray objectAtIndex:indexPath.row+indexPath.section-1];
if (indexPath.row==2) {
// productImage=[self createImageWithFrame: CGRectMake(104, 10, 190,20)];
}
if (indexPath.row==7) {
// titleLabel1=(UILabel *)[cell.contentView viewWithTag:indexPath.row+indexPath.section];////time label
}
if (indexPath.row==8) {
// titleLabel1=(UILabel *)[cell.contentView viewWithTag:indexPath.row+indexPath.section];;///time label
}
// textFld=(UITextField *)[cell.contentView viewWithTag:indexPath.row+indexPath.section];
if (indexPath.row==9) {
}
}
}
編輯:離開7節1節:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ReuseCell";
// UIColor* mainColor = [UIColor colorWithRed:43.0/255 green:128.0/255 blue:191.0/255 alpha:1.0f];
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell==nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
cell.tag=indexPath.row;
if (indexPath.row!=0) {
titleLabel1=[self createLabelWithFrame:CGRectMake(4, 5, 100, 30)];
titleLabel1.tag=indexPath.row+indexPath.section;
[cell.contentView addSubview:titleLabel1];
}
NSLog(@"%d",indexPath.row);
}
else{
titleLabel1=(UILabel *)[cell.contentView viewWithTag:indexPath.row+indexPath.section];
}
if (indexPath.row!=0)
titleLabel1.text=[labelArray objectAtIndex:indexPath.row+indexPath.section-1];
return cell;
}
and my labelArray is:
labelArray=[[NSMutableArray alloc]initWithObjects:@"*Name",@"Category",@"Brand",@"Model",@"Serial no",@"Bill no",@"*Purchase date",@"*Expiry Date",@"Description",nil];
多少節你有在UITableView中的 –
可能重複[UITableViewCell的重複,當滾動](http://stackoverflow.com/questions/17063022/uitableviewcell-repeating-when-scroll) - 永遠不要重複你自己的問題。 – hakre