UIImageView размывает изображение

Второй синтаксис имеет нежелательную возможность перекрестного объединения: можно добавить таблицы к ОТ части без соответствующего оператора Where. Это считают вредным.

5
задан Glorfindel 12 April 2019 в 16:54
поделиться

5 ответов

Попробуйте выровнять представление IconObj по пикселям экрана. Если это действительно 45x45, тогда вам следует установить центр примерно на CGPointMake (x + 0.5f, y + 0.5f).

Вам также следует дважды проверить размер изображения в пикселях (например, в Preview.app Command-I).

0
ответ дан 18 December 2019 в 10:47
поделиться

В итоге я загрузил увеличенное изображение в UIImageView размером 45x45, конечно, с помощью

contentMode = UIViewContentModeScaleAspectFit;
1
ответ дан 18 December 2019 в 10:47
поделиться

У меня была эта проблема, и она сводила меня с ума. После некоторого расследования выяснилось, что мое изображение было меньше, чем рамка, и, следовательно, масштабирование размыло его. Как только я добавил изображения с более высоким разрешением, проблема исчезла.

Убедитесь, что размер вашего изображения больше, чем размер кадра UIImageView.

3
ответ дан 18 December 2019 в 10:47
поделиться

В общем, все, что вы делаете на iPhone с UIKit, должно быть выровненным по пикселям. Проблемы с выравниванием пикселей обычно проявляются в виде размытости (это , особенно верно для текста и изображений). Вот почему, когда я нахожу размытый вид, я сначала проверяю, устанавливаю ли я свойство center . Когда вы устанавливаете center , x, y, высота и ширина кадра регулируются вокруг этой центральной точки ... часто приводя к дробным значениям.

Вы можете попробовать использовать CGRectIntegral в кадре, как показано:

desertIconView.center = CGPointMake(265,VERTICAL_POINT_ICON);
desertIconView.frame = CGRectIntegral(desertIconView.frame);

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

Редактировать: Упс! Не заметил, что ОП ответил на свой вопрос ... Я все равно оставлю это в информационных целях.

8
ответ дан 18 December 2019 в 10:47
поделиться

Ваш IconObj имеет ширину 45 пикселей. Вы перемещаете центр IconObj на 265, в результате чего его рамка становится (242.5, VERTICAL_POINT_ICON - 25 * 0.5, 45, 25). Изображение всегда будет размытым, если какой-либо параметр кадра не является целым числом.

Решение , рассчитайте параметр кадра самостоятельно (не используйте центр). И всегда делайте его целым (приведите к NSInteger, используйте ceil, floor или round).

desertIconView.frame = CGRectMake((NSInteger)(265 - 45*0.5),
                                  (NSInteger)(VERTICAL_POINT_ICON - 25*0.5),
                                  45, 25);
3
ответ дан 18 December 2019 в 10:47
поделиться