2014-09-15 3 views
8

У меня есть UITableView, который состоит из статических ячеек. В IB я установил каждый стиль UITableViewCell в «Basic» и установил изображение (см. Снимок экрана). Кнопки в моем навигационном баре почитают свойство tintColor, но изображения в таблице нет. До сих пор я делал все в IB - do I есть, чтобы использовать код, если я хочу, чтобы изображения почитали свойство tintColor тоже?Изображения в ячейках UITableView не соблюдают tintColor

Благодаря

enter image description here

+1

http://stackoverflow.com/questions/18855080/dimming-a-tintcolor-on-a-uitableviewcell – Retro

+0

Так что это невозможно сделать в IB? Это кажется действительно странным, так как, IMHO, это обычно то, что я хочу, чтобы произойти по умолчанию. И поскольку это статические ячейки, я действительно не хочу делать все в коде, если мне это не нужно. – RobertJoseph

+1

cellImageView не имеет свойства оттенка цвета. вы должны использовать пользовательскую ячейку и маленький код. http://stackoverflow.com/questions/5145953/how-to-tint-an-image-show-a-colour – Retro

ответ

8

Каждый UIImageView обладает свойством tintColor на iOS7 +

Попытка установить ячейки imageView.image.renderingMode к UIImageRenderingModeAlwaysTemplate в раскадровке User Defined Runtime Attributes

+0

Это потрясающе - спасибо! – RobertJoseph

+1

Я использую векторные pdf-файлы, которые отображаются как шаблон. они отображаются хорошо с установленным цветом оттенков везде, за исключением моих пользовательских ячеек, где изображения находятся внутри изображения. как я могу справиться с этим? – AceN

+0

Можете ли вы показать, как это сделать более подробно? – Deekor

1

Вот пример:

UIImage *image = [[UIImage imageNamed:@"ic_email_white"] 
        imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 
[[cell imageView] setImage:image]; 
[[cell imageView] setTintColor:[UIColor redColor]]; 
7

Какая головная боль эта проблема после стольких версий! Единственное, что это верный исправить, предполагая все «правильно» (эталонное изображение, и т.д.) является подклассов UIImageView и первостепенную didMoveToSuperview с этим ...

- (void)didMoveToSuperview 
{ 
    [self setHighlighted:YES]; 
    [self setHighlighted:NO]; 
    [super didMoveToSuperview]; 
} 

Это хак, но это работает.

+0

Этот хак хорошо работает в таком случае, что цвет оттенка применяется только после нажатия на ячейку. Благодаря! – nopopon

+0

То же самое. В сценарии, где UIImageView был в UICollectionViewCell и не был подсвечен до тех пор, пока ячейка не была прослушена, добавление этого в мой подкласс UIImageView действительно создало правильный эффект. *вздох...* –

Смежные вопросы