Saya memiliki aplikasi yang mendukung iOS8 dan yang lebih baru, dibangun di Xcode 7 dan saya menggunakan XIB untuk Layar Peluncuran (Saya tidak memiliki gambar peluncuran). Tampilan berisi satu UILabel dengan versi aplikasi, dan 2 UIImageViews dengan gambar yang keduanya ada di Images.xcassets: Sebuah logo dan gambar splash.
UILabel dan gambar logo muncul dengan benar ketika saya meluncurkan aplikasi, tetapi gambar percikan tidak jika saya menjalankan aplikasi pada iPad Air 2 dengan iOS9. Saya telah menguji pada Air dan Mini yang menjalankan iOS8, dan simulator iOS9 untuk iPad 2, iPad Air, dan iPad Air 2 dan gambar muncul dengan benar di semua itu.
Saya menjalankan beberapa pemecahan masalah dasar untuk melihat apakah saya bisa mencari tahu apa yang sedang terjadi, tetapi saya belum dapat menyelesaikannya dan satu-satunya perbedaan yang dapat saya lihat antara gambar yang berfungsi dan yang gagal adalah ketika saya menambahkannya ke aktiva...
Berikut ini ikhtisar dari apa yang saya ketahui:
UIImageView untuk gambar splash berada di tempat yang benar, pada ukuran yang benar. Saya bisa mengatakan ini karena saya mengatur warna latar belakangnya menjadi hijau hanya untuk memastikan. Pemandangan ada di sana, tetapi gambar tidak muncul. Jadi saya berasumsi bahwa pandangan itu tidak bisa disalahkan.
Mengatur UIImageView untuk gambar splash juga menggunakan gambar logo membuat gambar logo muncul di tempat yang benar untuk tampilan. Ini juga membuat saya berasumsi bahwa pandangan itu tidak bisa disalahkan.
UIImage yang saya gunakan dalam tampilan gambar splash digunakan di tempat lain di aplikasi dan tampak bagus di tampilan lain (gambar logo juga digunakan di tempat lain di aplikasi dan tampak baik-baik saja). Jadi saya berasumsi bahwa gambar itu valid dan muncul di tampilan lain bukanlah masalah.
Saya telah mengkonfirmasi bahwa pengaturan UIImages untuk logo dan splash di file xcassets adalah sama. Mereka diatur ke Universal, Lebar dan tinggi apa pun, berbagai faktor skala, diterjemahkan sebagai standar. Ada satu perbedaan - logo memiliki skala 1x, 2x dan 3x sedangkan gambar splash hanya memiliki 1x dan 2x, tetapi saya juga telah mencoba menggunakan UIImages dengan hanya 1x, dan nilai 1x dan 2x di UIView dan mereka bekerja (jika ada ditambahkan ke proyek beberapa waktu lalu).
Menambahkan gambar lain dengan ukuran atau format yang berbeda (PNG dan JPG) ke xcassets saya dan menggunakan UIImage di UIImageView untuk gambar splash juga gagal ditampilkan.
Menambahkan UIImageView lain ke file XIB dan mengalokasikannya UIImage yang sudah ada di xcassets berfungsi, gambar muncul di layar memuat.
Menyalin dan mengganti nama file gambar yang digunakan untuk logo dan menambahkannya ke proyek kemudian menggunakan UIImage dalam tampilan splash juga gagal ditampilkan.
Saya telah mencoba membersihkan proyek, menyalakan kembali mesin pengembangan, dan menghapus aplikasi dari Air 2 dan menginstalnya kembali kalau-kalau ada masalah.
Tiga langkah terakhir ini membuat saya percaya bahwa ada beberapa masalah dengan gambar yang ditambahkan setelah titik tertentu dalam masa hidup file proyek. Sementara saya memperbarui ke Xcode 7 kemarin, gambar splash pada awalnya ditambahkan di Xcode 6, tetapi gambar logo (juga ditambahkan dalam Xcode 6) ditambahkan beberapa bulan sebelumnya.
Saya telah melihat file json untuk gambar logo dan gambar splash dan mereka tampaknya memiliki format yang sama. Saya juga melihat-lihat file pbxproj mencari perbedaan dan saya tidak bisa melihatnya.
Jadi saya bertanya-tanya apakah ada yang tahu mengapa layar peluncuran mungkin tidak menampilkan gambar-gambar baru yang saya tambahkan di Air 2 secara khusus? Pertanyaan lain yang telah saya baca terkait dengan gambar yang tidak muncul semuanya tampaknya berhubungan dengan Peluncuran Gambar, atau gambar dalam file XIB yang memiliki kelas terkait, yang keduanya tampaknya tidak relevan di sini.
Jawaban:
Matikan jika dan nyalakan lagi.
Serius, nyalakan ulang perangkat - itulah yang diperbaiki untuk saya.
Inilah yang tidak berhasil:
Pengamatan yang lebih lama:
Sama seperti yang lain, itu:
Apa yang saya ingat memicu bangunan pertama di mana ia berhenti bekerja adalah mencabut iPhone saat sedang berjalan. (Tidak yakin apakah itu terkait.)
Namun, git reset tidak memperbaikinya (dikombinasikan dengan semua langkah bersih yang tidak berfungsi) memberi tahu saya ini harus di-cache di tempat lain. Sangat mungkin di salah satu file .gitignored? (Saya menggunakan file abaikan Git untuk proyek Xcode )
Satu solusi yang bekerja untuk satu UIImageView (di UIView yang memiliki tiga) tetapi tidak untuk yang lain adalah menempatkan gambar ke dalam file .xcassets. Mengembalikan ke file gambar biasa tidak membatalkan perbaikan. (Benar-benar terasa seperti kesalahan caching.)
UPDATE: Lihat top - me-restart perangkat adalah apa yang diperbaiki itu. Saya merasa bahwa data bitmap yang salah sedang di-cache pada perangkat itu sendiri.
Radar: http://openradar.appspot.com/23534818
sumber
"Solusi bagi saya adalah memastikan bahwa kotak" Menghapus Grafik Konteks "tidak dicentang untuk UIImageView di storyboard. Hanya mengubah ini untuk saya." Tidak ada solusi lain yang bekerja untuk saya. Dapat dari forum pengembang apel
sumber
Saya memiliki masalah yang persis sama pada iPhone 6.
Fakta yang sangat aneh adalah bahwa saya dapat menggunakan gambar lain dari gambar saya. Xetset yang memiliki ukuran, kompresi, ruang warna yang sama ...
Saya tidak dapat menemukan mengapa itu tidak berhasil, tetapi saya menemukan solusi: Cukup letakkan file Anda di luar images.xcassets Anda dan gunakan nama lengkapnya (dengan ekstensi) di Interface Builder
Semoga bantuan ini!
sumber
Urutan operasi berikut memperbaiki masalah saya di Xcode 7.3.1 dan iOS 9.3.4:
sumber
Banyak jawaban lain menyarankan untuk me-reboot perangkat dan / atau membangun kembali dan / atau menginstal ulang adalah solusinya.
Sementara jawaban ini bekerja untuk sebagian dari kita, alasan pekerjaan ini adalah karena aplikasi dipaksa untuk "mengambil kembali" atau "membangun kembali" snapshot yang di-cache.
Snapshots dalam cache digunakan oleh aplikasi untuk menyajikan gambar sebelum data pendukung dimuat ke dalam memori, termasuk katalog aset yang berisi gambar storyboard.
Jawaban SO oleh @jaga ini memberikan solusi, tetapi bukan alasannya, mengapa UIImageViews hilang di Layar Peluncuran pada perangkat (tetapi tidak dalam simulator).
Latar Belakang
Baru-baru ini saya mencoba menggunakan font khusus dalam file "Launch Screen.storyboard" saya.
Alasan saya tidak bisa menjadi jelas setelah membaca jawaban SO ini oleh @TimCamber, yang mendorong saya untuk melakukan sedikit riset dan pengujian.
Alasan bahwa font khusus tidak termasuk dalam file Storyboard Layar Luncurkan saya adalah alasan yang sama gambar dalam katalog aset tidak termasuk ...
Aplikasi ini menyiapkan snapshot potret & lansekap dari Layar Peluncuran aplikasi dari file Layar Peluncuran Storyboard Anda dan (saat ini) menyimpannya dalam bundel aplikasi Anda di sini:
/Library/Caches/Snapshots/<<app_bundle>>/
dan/Library/Caches/Snapshots/<<app_bundle>>/downscaled/
.Proses ini selesai sebelum semua file pendukung dimuat, termasuk font khusus dan katalog aset.
Larutan
Seperti disebutkan di atas dengan mengikuti solusi @ jaga, secara harfiah semua yang diperlukan adalah:
sumber
Saya melihat masalah yang sama. Mem-boot ulang perangkat (iPhone 6) dan membangun kembali aplikasi ke perangkat adalah satu-satunya yang memperbaikinya. Saya mencoba banyak tips dan saran lain tetapi tidak ada yang berhasil. Hanya reboot + rebuild yang membantu.
sumber
Solusi saya @iOS 11.x:
.jpg
gambar sebagai ganti.png
. Saya pikir ukuran file gambar penting;.xcassets
;sumber
.xcassets
membantuSaya memiliki hal yang sama untuk aplikasi yang diinstal dari TestFlight. Hapus aplikasi -> lalu mulai ulang iPhone -> lalu instal ulang aplikasi berfungsi untuk saya. Cukup instal ulang aplikasi atau hanya me-restart perangkat tidak membantu.
sumber
Saya mengalami masalah yang sama, tetapi memulai ulang perangkat tidak membantu. Apa yang berhasil bagi saya adalah menghapus UIImageView dari storyboard peluncuran saya dan menambahkan yang baru.
sumber
Sudahkah Anda mencoba mematikan dan menghidupkan perangkat lagi? Lakukan.
sumber
Apa yang berhasil bagi saya adalah memilih Reset Konten dan Pengaturan ... dari menu Simulator
sumber
Bawa gambar keluar dari Image.xcassets dan tambahkan lagi ke proyek. Ini berhasil untuk saya.
sumber
Hapus aplikasi dari ponsel lalu restart ponsel dan instal aplikasi lagi. sekarang masalah akan terpecahkan
sumber
Saya menggunakan perangkat iPhone 5s, juga memenuhi masalah ini.
Saya memperbaikinya dengan:
Saya pikir itu adalah sesuatu yang salah dari Xcode untuk menggunakan memori, sistem mungkin mengalokasikan sedikit memori untuk Xcode menyebabkan Xcode menggambar gambar makan siang gagal (Di komputer saya, Xcode telah dijalankan selama beberapa minggu tanpa ditutup)
sumber
Saya juga punya masalah persis ini di Xcode 7 dengan perangkat iPad dan iPhone. Meskipun itu tidak masuk akal, saya dapat menyiasati sebagian besar waktu dengan mengatur tidak hanya Gambar tetapi juga gambar yang Disorot dalam tampilan gambar ke gambar yang sama di gambar saya. Xetset.
sumber
Saya pikir launchscreen hanya mendukung gambar di Assets.xcassets.
sumber
ini bekerja untuk saya.
Pertama dalam proyek xcode clean de.
Jika Anda menggunakan simulator, hapus aplikasi dan jalankan kembali.
Jika Anda menggunakan perangkat, hapus aplikasi dan restart perangkat.
sumber
Restart Xcode melakukannya untuk saya.
Apa yang tidak melakukannya:
sumber
Pilih ImageView dan kemudian hapus ekstensi gambar (.png atau .jpg) di tab pemeriksa atribut> Tampilan gambar> Gambar> Nama Gambar.
Pada launchscreen.storyboard gambar tidak akan muncul tetapi akan ada di perangkat. Ini berhasil untuk saya.
sumber
Sepertinya bug dari iOS. Seperti kadang-kadang animasi sistem menghilang.
Sekarang saya hanya me-reboot iPhone dan itu berfungsi untuk saya.
sumber
Dalam kasus saya, saya adalah nama gambar .
Saya menambahkan gambar yang bernama
[email protected]
LaunchScreen.xib - salah satu layar peluncuran lama saya hanya untuk tujuan pengujian. Saya membangun pada iPhone X Simulator, gambar tidak muncul.Mengubah nama menjadi sesuatu yang netral (MyImage.png) menyelesaikan masalah.
Tampaknya itu
@2x
adalah bagian dari masalah dan juga-568h
. Yang masuk akal pada-812h@3x
perangkat.sumber
Ini terlalu penting. Harus kosong !
Launch Screen File
sumber
Solusi sederhana adalah dengan menggunakan JPG, bukan PNG.
sumber
Saya memiliki masalah yang sama dengan imageView papan luncur layar peluncuran. Saya menghapus referensi gambar dari proyek, saya mengganti nama gambar saya dan menambahkannya lagi ke proyek. Semua bekerja dengan sempurna.
sumber
Juga dapat 1. menghapus gambar proyek 2. mengubah nama gambar 3. menambahkan file gambar ke proyek
Ini berhasil untuk saya.
sumber
Saya punya masalah ini di iOS 10 pada iPhone 6 dan juga di Simulator. Gambar saya ada di folder dan sepertinya itu masalahnya. Saya menghapus gambar dari folder di Xcode dan meletakkannya di direktori dasar proyek yang memecahkan masalah.
sumber
Saya mengalami hal yang sama. Saya mengubah resolusi gambar dari 300 piksel / inci, ubah ke 72. Ini berfungsi untuk saya.
sumber
Berikutnya membantu saya:
Juga sangat penting : periksa apakah xib Anda tidak dibuka di tab lain, yang dapat menyebabkannya juga!
sumber
Saya menemukan solusi sederhana namun radikal yang berhasil untuk saya:
1 - Hapus file: LaunchScreen.storyboard dan pindahkan ke tempat sampah.
2 - Produk -> Bersih
3 - Buat file layar peluncuran baru bernama: LaunchScreen.storyboard dan letakkan gambar Anda di dalamnya
4 - Simpan dan bangun
Itu bekerja untuk saya setelah mencoba metode yang rumit selama berjam-jam ... Sepertinya LaunchScreen.storyboard saya sudah dikunci dan tidak bisa diselamatkan atau proses caching yang aneh memblokirnya.
sumber
Nama gambar adalah masalahnya. Ganti nama gambar yang digunakan di dalam papan luncur layar. Pastikan untuk tidak menggunakan karakter apa pun selain alfanumerik (jangan gunakan "_- & @") Bekerja untuk saya seperti pesona ..
sumber