Приведенный ниже код работает нормально, когда я не добавляю лишнюю строку, все представления контента контролируются (скрываются / видимы), но возникают проблемы при добавлении в фиктивные строки.
У меня табличное представление, созданное программно. Я инициализируюмоя ячейка с некоторым представлением содержимого (метки и кнопки). Я добавляю две фиктивные строки как: if indexPath.row> [mYarray count]. Я пытаюсь скрыть свои кнопки в дополнительных добавленных строках. Но когда я прокручиваю кнопкииногда скрываются от ячейки или некоторое время отображаются в ячейке. Условие выглядит примерно так: if (indexPath.row <[mYarray count]), тогда <strong>кнопки МОГУТ (см. код ниже, условие, которое решает скрыть / увидеть, если(ShowNQButton)) быть скрытым / видимым . Но если (indexPath.row> [mYarray count]), тогда кнопки ДОЛЖНЫ быть скрыты / невидимы / удалены.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Identifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:Identifier] autorelease];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
waitTimeLabel=[[[UILabel alloc] initWithFrame:CGRectMake(210, 0, 50, 30)]autorelease];
waitTimeLabel.backgroundColor=[UIColor clearColor];
waitTimeLabel.tag=lblTAG5;
waitTimeLabel.numberOfLines=2;
waitTimeLabel.font=[UIFont systemFontOfSize:13];
[cell.contentView addSubview:waitTimeLabel];
EstSeatLabel=[[[UILabel alloc] initWithFrame:CGRectMake(270, 0, 60, 30)]autorelease];
EstSeatLabel.backgroundColor=[UIColor clearColor];
EstSeatLabel.tag=lblTAG6;
EstSeatLabel.font=[UIFont systemFontOfSize:12];
[cell.contentView addSubview:EstSeatLabel];
}
else
{
waitTimeLabel=(UILabel *)[cell viewWithTag:lblTAG5];
EstSeatLabel=(UILabel *)[cell viewWithTag:lblTAG6];
}
if (indexPath.row < [UIAppDelegate.waitlistDetailArray count]) {
NQbutton = [[UIButton alloc]init];
NQbutton.frame=CGRectMake(220, 4, 42, 24);
NQbutton.adjustsImageWhenHighlighted=NO;
NQbutton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
NQbutton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
UIImage *NQbuttonimage = [UIImage imageNamed:@"NqN"];
[NQbutton setBackgroundImage:NQbuttonimage forState:UIControlStateNormal];
[NQbutton addTarget:self action:@selector(NQbutton:event:) forControlEvents:UIControlEventTouchUpInside];
NQbutton.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:NQbutton];
[NQbutton release];
NQbuttonEstTime= [[UIButton alloc]init];
NQbuttonEstTime.frame=CGRectMake(275, 4, 42, 24);
NQbuttonEstTime.adjustsImageWhenHighlighted=NO;
NQbuttonEstTime.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
NQbuttonEstTime.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
UIImage *NQbuttonesttimeimage = [UIImage imageNamed:@"NqN"];
[NQbuttonEstTime setBackgroundImage:NQbuttonesttimeimage forState:UIControlStateNormal];
[NQbuttonEstTime addTarget:self action:@selector(NQbutton:event:) forControlEvents:UIControlEventTouchUpInside];
NQbuttonEstTime.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:NQbuttonEstTime];
[NQbuttonEstTime release];
if(ShowNQButton)//**this BOOL variable is outside of cellForRow decides if buttons //should be visible or not when indexPath.row < myArray' count.**
{
NQbutton.hidden=NO;
NQbuttonEstTime.hidden=NO;
}
else {
NQbutton.hidden=YES;
NQbuttonEstTime.hidden=YES;
}
}
else
{//i have added three dummy rows in numberOfRowsInSection(when indexpath.row > [myArray Count])
waitTimeLabel.text=@" ";
EstSeatLabel.text=@" ";
//below i am stuffing in removing/hiding these two contentViews from dummy cells
NQbutton.hidden=YES;//tried setImage=nil fornormalState//tried removeFromSupViw
NQbuttonEstTime.hidden=YES;//tried setImage=nil fornormalState//tried removeFromSupViw
}
}
return cell;
}
Есть предложения?спасибо