У меня есть 2 вида в моем UITableViewCell
, и я хочу показать альтернативные представления в каждой ячейке (если предыдущая ячейка имеет правый вид ON, тогда следующая ячейка будет иметь вид слева).Показать альтернативные представления в каждом UITableViewCell - iOS
Я реализовал его успешно, но при прокрутке табличного вида чередующиеся представления не работают правильно; Пример изображения ниже:
Мой код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"LiveStreamCell" forIndexPath:indexPath];
if(cell == nil)
{
cell =[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"LiveStreamCell"];
}
UIView *leftView = (UIView*)[cell viewWithTag:999];
UIView *rightView = (UIView*)[cell viewWithTag:998];
UIImageView *mediaImage;
mediaImage.clipsToBounds = YES;
UILabel *artistLabel;
UILabel *titleLabel;
UILabel *statusLabel;
if (isViewOnLeft) {
isViewOnLeft = NO;
rightView.hidden = NO;
leftView.hidden = YES;
mediaImage = (UIImageView *)[cell viewWithTag:221];
CALayer *cellImageLayer = mediaImage.layer;
[cellImageLayer setCornerRadius:74];
[cellImageLayer setMasksToBounds:YES];
artistLabel = (UILabel *)[cell.contentView viewWithTag:222];
titleLabel = (UILabel *)[cell.contentView viewWithTag:223];
statusLabel = (UILabel *)[cell.contentView viewWithTag:224];
}
else {
isViewOnLeft = YES;
leftView.hidden = NO;
rightView.hidden = YES;
mediaImage = (UIImageView *)[cell viewWithTag:121];
CALayer *cellImageLayer = mediaImage.layer;
[cellImageLayer setCornerRadius:74];
[cellImageLayer setMasksToBounds:YES];
artistLabel = (UILabel *)[cell.contentView viewWithTag:122];
titleLabel = (UILabel *)[cell.contentView viewWithTag:123];
statusLabel = (UILabel *)[cell.contentView viewWithTag:124];
}
/*Here I'm setting image (come from web URLs) and labels data*/
}
Раскадровка скриншот:
Я знаю, что проблема с повторным использованием клеток, но я искал d много, но не повезло. Пожалуйста, предложите решение.
Спасибо!
У меня нет ничего, чтобы добавить, но я просто хочу сказать, что созданный вами пользовательский интерфейс - это классный способ сделать временную шкалу. Хорошая работа! : D – user3353890