Почему этот Uiimage исчезает из UiableViewCell при вращении к ландшафту?
-
27-09-2019 - |
Вопрос
Я пытаюсь настроить UiableViewcell, который может иметь изображение в правом верхнем углу.
У меня он работает на портретном режиме, но когда я вращаю в ландшафт, изображение исчезает.
Вот код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UIImage *cornerImage = [UIImage imageNamed:@"star_corner.png"];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(cell.contentView.bounds.size.width - cornerImage.size.width,
0,
cornerImage.size.width,
cornerImage.size.height)];
imageView.tag = kCornerImageViewTag;
[cell.contentView addSubview:imageView];
[imageView release];
}
UIImageView *theView = (UIImageView *)[cell.contentView viewWithTag:kCornerImageViewTag];
[theView setImage: [UIImage imageNamed:@"star_corner.png"]];
cell.textLabel.text = @"the text label";
return cell;
}
Интересно, что если я прокомментирую строку «Cell.textLabel.text =», изображение показывает в ландшафте ... хотя он не сдвигается на дальние правые.
Если есть что-то еще, что я делаю не так, пожалуйста, дайте мне знать.
Спасибо заранее за любую помощь.
Решение
Я понял это. Раствор должен был создать два UIIMageView ... Один для Звездного углового изображения и один для фонового изображения клетки.
Я добавил звездный угол UiimageView в качестве подзва к фоновому изображению UiimageView, затем назначил, что к Cell.backgroundView.
Звезда UiimageView позиционирует себя правильно, используя:
starImageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
И поскольку все это назначено на Cell.backgroundView (вместо Cell.contentView), оно не зависит от кнопки удаления элементов элементов элементов элементов удаления ячейки или восстановителя.
Другие советы
Ваш UIViewController должен реагировать на дидротатфернтразнесение.
В этом методе вы можете пройти через ячейки, получить UIImageView с помощью [ViewWithTag Cell] и измените свойство кадра в соответствии с новыми размерами ячейки (Cell.contentview.bounds).
Удачи!