2013-07-24 1 views
0

В настоящее время я использую пользовательское изображение для моего UITableView Accessory View. Я установил аксессуар в изображение с этим пользовательским изображением. Если я использую cell-arrow.png (15x15 px), он выглядит довольно неровным. Однако, если я использую cell-arrow.png (100x100 px), а затем переразмеру его в коде [см. Ниже], тогда он выглядит намного лучше. Почему это?Нечетное изменение размера и разрешение с дисплеем Retina iOS

Развейте вопрос:

Кажется, что это было установлено, что с помощью 100x100px изображения, а затем проклейки его до 15x15 выглядит лучше на устройстве (в частности, с сетчаткой, не полностью протестированы это < 4.0). Следующий вопрос: какой максимальный размер я могу установить для изображения, чтобы он увеличил разрешение? Например, я протестировал версию 1024x1024 того же самого изображения cell-arrow.png, и он выглядит идентичным, когда я изменил размер изображения 100x100 пикселей.

* код используется повторно размер: *

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 15.0f, 15.0f); 
    UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
    [myImage setImage:[UIImage imageNamed:@"cell-arrow.png"]]; 

    // cellArrowNotScaled ends up making the image look very pixelated 
    // UIImageView *cellArrowNotScaled = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cell-arrow15.png"]]; 

    cell.accessoryView = myImage; //cellArrowNotScaled; 
+0

Вы создали другое изображение [email protected] для cell-arrow.png, которое в два раза больше исходного (30 x 30 пикселей)? – Lunayo

ответ

2

В общем, вы должны использовать изображение, которое точно размер, который будет использоваться на экране. В противном случае вы оставляете масштабирование вашего изображения до программного обеспечения, и вы можете в конечном итоге с несогласованными пикселями и резкими линиями, которые становятся нечеткими. Помните, что с iOS 4 все измерения в UIKit находятся в точках UIKit, где на дисплее Retina 1pt = 2px, а на не-Retina - 1pt = 1px.

Итак, для 15pt 15pt × зрения изображения, вы будете иметь два файла изображения, если вы собираетесь предназначаться как Retina и без Retina устройств:

  • клеток-Arrow.png, а 15px × 15px изображение
  • [email protected], 30px × 30px изображение

Тогда вы называете [UIImage imageNamed:@"cell-arrow"] (обратите внимание на отсутствие расширения - UIKit цифры это для вас), а операционная система будет загружаться 1x или 2x по мере необходимости.