Центрирование UIImageView в UItableViewCell не работает, как это исправить? - PullRequest
2 голосов
/ 28 ноября 2011

Я могу разделить ячейку на подклассы и решить проблему, но я хотел бы знать, почему это не работает.

Я устанавливаю изображение в ячейку, затем в этом методе я перемещаю изображение вправо:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
        [cell.imageView setFrame:CGRectMake(cell.contentView.bounds.size.width/2 - cell.imageView.frame.size.width/2 + 100,
                                            cell.contentView.bounds.size.height/2 - cell.imageView.frame.size.height/2,
                                            cell.imageView.frame.size.width,
                                            cell.imageView.frame.size.height)];
        NSLog(@"center: %@", NSStringFromCGPoint(cell.imageView.center));
        NSLog(@"frame: %@", NSStringFromCGRect(cell.imageView.frame));
}

Обратите внимание на добавленную мною +100, чтобы убедиться, что она справа.

Когда я проверяю консоль, это показывает следующее:

центр: {250, 57,5}

кадр: {{150, 7.5}, {200, 100}}

Однако вывод таков:

grouped cell image

Изображение все еще выровнено по левой стороне. Можно ли это изменить, и если да, то как?

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

если вы перейдете к заголовочному файлу UITableViewCell, то там вы найдете ...

> // Content.  These properties provide direct access to the internal
> label and image views used by the table view cell.  These should be
> used instead of the content properties below.
> @property(nonatomic,readonly,retain) UIImageView  *imageView
> __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0);   // default is nil.  image view will be created if necessary.

так что, как вы можете видеть, он говорит, что свойство readOnly для представления изображения ... Я думаю, это объясняет вашуневозможность перемещения imageView.

1 голос
/ 28 ноября 2011

Вы не можете перемещать изображение.Решением является либо создание подкласса и создание собственного чертежа в drawRect, либо добавление подпредставления в cell.contentView.

Редактировать:

Если установлено изображение, оно появляется с левой стороны ячейки перед любой меткой.UITableViewCell создает объект просмотра изображения при создании ячейки.

С UITableViewCell Ссылка на класс

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