UITabBarItem размер изображения на дисплее сетчатки - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть приложение TabBarController, которое получает все изображения из Интернета, включая значки для tabBarController. Я хочу, чтобы изображения выглядели хорошо, когда на устройстве установлен дисплей Retina.

Вот что я делаю:

  1. Изменение размера изображения в зависимости от масштаба экрана.
  2. Настройка масштаба содержимого представления: imageView.contentsScale = [UIScreen mainScreen] .scale;

Он работает нормально для стандартных изображений с UIImageView, однако я не могу понять, как это сделать для UITabBarItems, поскольку у меня нет доступа ни к фрейму, ни к contentScale.

Есть идеи?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 14 августа 2011

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

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];
UIImage *image = [UIImage imageWithData:data];
CGImageRef cgimage = image.CGImage;
image = [UIImage imageWithCGImage:cgimage scale:2.0 orientation:UIImageOrientationUp];

Теперь вы можете использовать это изображение на вашем UITabBarItem.

2 голосов
/ 14 августа 2011

Вы можете создать две версии изображения и назвать их image.png для 30px и image@2x.png для 60px.Затем используйте это:

UIImage *image = [UIImage imageNamed:@"image.png"];

Изображение с правильным разрешением будет загружено в зависимости от дисплея на устройстве.

0 голосов
/ 15 апреля 2011

Как насчет того, чтобы определить, является ли устройство сетчаткой или нет, и соответственно загрузить различные ресурсы?

...