Подтвердить что ты не робот

Размер изображения UITabBarItem

Я делаю изображения для своего UITabBar. Я делаю их размером 60х60, потому что это то, что используют сетчатки сетчатки. Однако, когда я использую этот размер, он отображается слишком большим в баре, поэтому вы можете видеть только часть изображения. Когда я уменьшаю его до 30x30, он работает, но этот размер предназначен для не-сетчатых дисплеев. Почему он не отображается правильно, когда я использую 60x60?

4b9b3361

Ответ 1

Вероятно, вам, возможно, придется переименовать изображение сетчатки в imagen[email protected].

Ответ 2

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

iOS автоматически выбирает для вас соответствующий размер изображения, в зависимости от разрешения устройства доступа. Таким образом, вы будете нести ответственность за предоставление изображения "стандартного разрешения", для устройств без сетчатки и изображения "высокого разрешения" для дисплеев сетчатки. То, как вы это делаете в iOS, - это добавить "@2x" в конец вашего имени файла, но перед расширением файла, например:

my-image.png     // for non-retina displays (Ex: 30x30 dpi)
[email protected]  // for retina displays (Ex: 60x60 dpi)
[email protected]  // for retina displays(plus editions) (Ex: 90x90 dpi)

Затем, когда вы ссылаетесь на файлы в своем проекте XCode, вам нужно только указать имя файла в стандартном разрешении (например, "my-image.png" ), и если у устройства доступа есть экран сетчатки, тогда XCode автоматически выберет файл с суффиксом "@2x" для вас. Это очень удобно, потому что это избавляет нас от необходимости определять, имеет ли устройство дисплей сетчатки, и какое изображение нам нужно для поставки.

Вот пример кода:

// Select an image named "my-image.png"
UIImage *img = [UIImage imageNamed:@"my-image.png"];

// If the device this code is run on is a retina device,
// then Xcode will automatically search for "[email protected]" and "[email protected]"
// otherwise, it will use "my-image.png"

Подробнее об этом читайте на веб-сайте Apple Developer: Оптимизация для высокого разрешения