Второй синтаксис имеет нежелательную возможность перекрестного объединения: можно добавить таблицы к ОТ части без соответствующего оператора Where. Это считают вредным.
Попробуйте выровнять представление IconObj
по пикселям экрана. Если это действительно 45x45, тогда вам следует установить центр примерно на CGPointMake (x + 0.5f, y + 0.5f).
Вам также следует дважды проверить размер изображения в пикселях (например, в Preview.app Command-I).
В итоге я загрузил увеличенное изображение в UIImageView размером 45x45, конечно, с помощью
contentMode = UIViewContentModeScaleAspectFit;
У меня была эта проблема, и она сводила меня с ума. После некоторого расследования выяснилось, что мое изображение было меньше, чем рамка, и, следовательно, масштабирование размыло его. Как только я добавил изображения с более высоким разрешением, проблема исчезла.
Убедитесь, что размер вашего изображения больше, чем размер кадра UIImageView.
В общем, все, что вы делаете на iPhone с UIKit, должно быть выровненным по пикселям. Проблемы с выравниванием пикселей обычно проявляются в виде размытости (это , особенно верно для текста и изображений). Вот почему, когда я нахожу размытый вид, я сначала проверяю, устанавливаю ли я свойство center
. Когда вы устанавливаете center
, x, y, высота и ширина кадра регулируются вокруг этой центральной точки ... часто приводя к дробным значениям.
Вы можете попробовать использовать CGRectIntegral
в кадре, как показано:
desertIconView.center = CGPointMake(265,VERTICAL_POINT_ICON);
desertIconView.frame = CGRectIntegral(desertIconView.frame);
Это может сработать, но если это не так, попробуйте установить кадр
вручную, не используя ] center
, чтобы гарантировать, что никакие значения не являются дробными.
Редактировать: Упс! Не заметил, что ОП ответил на свой вопрос ... Я все равно оставлю это в информационных целях.
Ваш 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);