Как избежать изменения размера изображения на пользовательском экране-заставке

Привет, я создаю приложение iOS с пользовательским экраном-заставкой, пользовательский экран-заставка загружается после экрана-заставки iOS по умолчанию с некоторым прогрессом загрузки. я установил изображение по умолчанию в качестве фона для моего пользовательского экрана-заставки, но пользовательское изображение экрана-заставки уменьшилось в размере вверху и внизу, пожалуйста, взгляните на снимки экрана и уберите это

заранее спасибо.

Экран iOS по умолчанию

введите здесь описание изображения

мой пользовательский экран-заставка

введите здесь описание изображения


person Murali    schedule 27.11.2013    source источник
comment
Как вы показываете изображение - через цвет фона или в UIImageView?   -  person Alexey Kozhevnikov    schedule 27.11.2013
comment
возможно, попробуйте использовать UIImageView, как предлагается здесь ком/вопросы/2039740/   -  person MikeIsrael    schedule 27.11.2013
comment
или может быть той же проблемой, что и здесь ком/вопросы/3401252/   -  person MikeIsrael    schedule 27.11.2013


Ответы (2)


Попробуйте явно определить размер экрана и используя определенный ресурс для 4-дюймового экрана.

if ([[UIScreen mainScreen] bounds].size.height == 568) {
    // Present an image formatted for iPhone 5
}
else {
    // Present an image formatted for a 3.5" iPhone
}

Согласно верхнему ответу здесь, iOS, похоже, не уважает ресурсы с -568h@2x прикрепленные к ним, кроме фактического изображения запуска.

Редактировать:
Судя по повторяющемуся изображению внизу, вы, возможно, делаете [UIColor colorWithPatternImage:]. С описанным выше методом используйте [UIImage imageNamed:].

person Chris Droukas    schedule 28.11.2013

Всем спасибо, большое спасибо.

Наконец я нашел хитрость,

Во-первых, вы должны скрыть строку состояния во время запуска. Просто выполнив это Xcode -> Цели проекта -> Вкладка сводки -> Строка состояния -> проверьте видимость.

Затем установите

[imgsplash setImage:[UIImage imageNamed:@"Default"]];

imgsplash.frame = CGRectMake([[UIScreen mainScreen] bounds].origin.x,
                             [[UIScreen mainScreen] bounds].origin.y,
                             [[UIScreen mainScreen] bounds].size.width,
                             [[UIScreen mainScreen] bounds].size.height);

imgsplash.autoresizingMask =  UIViewAutoresizingFlexibleBottomMargin |  
                              UIViewAutoresizingFlexibleTopMargin | 
                              UIViewAutoresizingFlexibleLeftMargin |
                              UIViewAutoresizingFlexibleRightMargin;

предоставив [UIImage imageNamed:@"Default"] пусть imageNamed может выбрать правильное изображение.

Спасибо.

person Murali    schedule 28.11.2013
comment
Вы можете просто сделать imgSplash.frame = [UIScreen mainScreen].bounds;, это то же самое. - person Aaron Brager; 28.11.2013
comment
Кроме того, я почти уверен, что autoresizingMask ничего не делает, поскольку границы экрана никогда не меняются. - person Aaron Brager; 28.11.2013