Автоматическое изменение размера таблицы TableViewCell в соответствии с UIImageVIew в iOS 6

У меня есть свойство uiimageview для отображения изображения в моем представлении таблицы и хотелось бы, чтобы одна конкретная ячейка просмотра таблицы меняла свою высоту в соответствии с высотой изображения в uiimageview. Ниже я это сделал. Не совсем уверен, почему высота ячейки tableview не изменилась ... :(

@interface BoatViewController()

@property (nonatomic, weak) IBOutlet UIImageView *boatImageView;

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.section == 0 && indexPath.row == 0) {
        return self.boatImageView.image.size.height;
    }else{
        return 44;
    }
}
0
nl ja de

2 ответы

попробуйте перезагрузить данные табличного представления, когда все закончит загрузку. Возможно, когда этот метод был вызван, iOS не закончил вычислять окончательный размер кадра.

В вашем методе viedDidAppear добавьте вызов для перезагрузки tableview. Посмотрите, помогает ли это вообще.

0
добавлено
Является ли изображение загружаемым удаленным изображением или оно хранится на устройстве? Если это на устройстве, попробуйте @Siba. Это, надо надеяться, разобраться в этом :)
добавлено автор PaReeOhNos, источник
Поэтому я добавил [self.tableview reloadData], но это не помогло. Не уверен, что это тоже проблема. Я загрузил изображение в uiimageview в viewDidLoad, и tableviewcell тоже не установил высоту ...
добавлено автор Kann, источник

Попробуйте этот код, надеюсь, что это поможет.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.section == 0 && indexPath.row == 0) {

    CGSize size = image.size;//Assign the image what you want to display.

 // self.boatImageView.frame=CGRectMake(0, 0, size.width, size.height);

    return size.height;

    }else{
        return 44;
    }
}
0
добавлено
Привет, в вашем случае вы показываете изображение в Imageview, а затем вы проверяете размер. Сделайте прямо противоположное. Сначала проверьте размер изображения и затем поместите это изображение в изображение. Я могу объяснить вам лучше, если вы сможете показать, как вы получаете изображение (от местного или удаленного)
добавлено автор Siba Prasad Hota, источник
Привет, В чем разница между self.boatImageView.image.size.height и CGSize size = image.size .? Я думал, что оба дадут CGFloat размер uiimmage.image.
добавлено автор Kann, источник
Ага, я понимаю, о чем ты. Итак, то, что я делал, на самом деле пыталось использовать высоту uiimageview вместо размера самого изображения. Это объясняет это. Я дам ему попробовать завтра и дам вам знать. Благодаря! :)
добавлено автор Kann, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.