UIImageView в UITableCell получает странный размер - PullRequest
1 голос
/ 17 июня 2010

Я пытаюсь поместить UIImageView в UITableViewCell.

Я создаю специальное представление под названием ProductView.С этой точки зрения у меня есть несколько компонентов, одним из которых является UIImageView.Я установил этот ProductView в качестве представления содержимого UITableViewCell.Все рисуется правильно, кроме UIImageView.UIImageView масштабируется бессмысленно.Его высота вдвое превышает высоту размера ячейки таблицы.

Я часами пытался решить эту проблему.Я установил фрейм UIImageView вручную, я вызвал метод drawRect UIImage в UIImageView, ни один из них не работал.

Я подумываю заменить UITableView на UIScrollView, если я не смогу найти решение.Кто-нибудь знает, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2011

У меня была та же проблема, и в конце концов я понял, что проблема не в автоматическом изменении размеров, а в том, что я получаю не UIImageView, а его родительское представление (ячейка таблицы), потому что к конфликту значений тегов (я получал представление через вызов UIImageView *pictureView = (UIImageView *)[cell viewWithTag:0];, а в ячейке был также установлен нулевой тег). Исправлено простым изменением значения тега.

0 голосов
/ 17 июня 2010

Используйте пользовательские ячейки и поместите все компоненты пользовательского интерфейса в эту ячейку (включая UIImageView), а в методе cellForRowAtIndexPath установите изображение следующим образом:

[cell.imgView setContentMode:UIViewContentModeScaleAspectFit];
[cell.imgView setFrame:CGRectMake(cell.imgView.frame.origin.x, cell.imgView.frame.origin.y, 120, 79)];      
[cell.imgView setImage:[UIImage imageNamed:@"image.png"]];          

И если вам нужно знать, как использовать пользовательские ячейки, следуйте этому руководству:

Учебник по программированию для iPhone: Часть 6. Создание пользовательского UITableViewCell с помощью Interface Builder [UITableView]

Надеюсь, это поможет вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...