#ios #iphone #ipad #splash-screen
#iOS #iPhone #iPad #заставка
Вопрос:
У меня было приложение для iPhone, в котором я использую изображение Default-568h@2x.png в качестве изображения или заставки.
Также в то же время я устанавливаю одно и то же изображение в виде изображения в окне для некоторой анимации на заставке. Непрозрачность моего изображения составляет 90%.
Проблема здесь в том, что перед тем, как в окне появится наше собственное изображение, изображение запуска отображается со 100% непрозрачностью, а затем наше собственное изображение отображается с фактическим 90%. Таким образом, в двух изображениях наблюдается заметный переход за доли секунды. С этим не очень хорошо, можем ли мы избежать этого, почему мое изображение запуска сначала отображается с полной непрозрачностью? Кто-нибудь может мне помочь в этом?
Ответ №1:
Приложения iOS всегда запускаются с изображением, установленным на полную непрозрачность — вы не можете это изменить. Если вы хотите сопоставить начальный экран с изображением запуска, у вас есть два варианта:
1) Сделайте изображение полностью непрозрачным; тогда в вашем applicationDidFinishLaunchingWithOptions:
методе вы могли бы сделать что-то вроде этого:
[UIView animateWithDuration:0.1 animations:^{
self.imageView.alpha = 0.9;
}];
Таким образом, после завершения запуска вашего приложения непрозрачность изображения уменьшится до 90%.
2) Определите, что будет находиться под изображением после запуска вашего приложения, затем скомпоновайте изображение запуска с этим; так, чтобы оно выглядело одинаково. Вы можете сделать это, запустив свое приложение, дождавшись, пока исчезнет текущее изображение запуска, затем сделав снимок экрана запущенного приложения и используя этот снимок экрана в качестве нового изображения запуска.
Комментарии:
1. так что эффект будет таким же, не так ли? сначала изображение с полной непрозрачностью, затем с 90%. то же самое происходит и сейчас
2. проблема здесь не в непрозрачности изображения, почему мое исходное изображение не отображается при запуске, непрозрачность моего изображения составляет всего 90%.
3. Непрозрачность вашего изображения запуска будет проигнорирована. Вы не можете это изменить; вам просто нужно обойти это.
4. Я добавил еще одну опцию — подделать прозрачность в изображении запуска.
Ответ №2:
Измените имя изображения на что-то другое, например, Splash.png
Теперь компилятору не удалось найти какой-либо образ запуска по умолчанию для вашего приложения.
Затем он попытается напрямую загрузить ваше окно. Итак, загрузите свое изображение / вид поверх окна с требуемой анимацией.
или
Используйте изображение по умолчанию -568h, которое уже имеет меньшую непрозрачность (с использованием инструментов типа Photoshop), скажем, 90%. Теперь добавьте еще одно изображение, splash.png с непрозрачностью 100%. Поэтому, когда ваш код запускается, он сначала преобразует splash.png в непрозрачность 90%, а затем подразумевает ваш код анимации.
Таким образом, не будет никакого отставания между изображением по умолчанию и заставкой, оба будут выглядеть одинаково.