Saya memiliki iPhone
aplikasi yang memiliki storyboard. Sekarang saya ingin menyediakan iPad
aplikasi juga. Jadi saya bertanya kepada saya apakah ada fungsi yang membantu saya mengubah iPhone
storyboard saya menjadi iPad
storyboard.
Untuk lebih spesifik:
Apakah ada fungsi yang serupa atau hanya ada cara manual?
Jawaban:
Saya menemukan semacam solusi:
Gandakan iPhone-Storyboard Anda dan ganti namanya
MainStoryboard_iPad.storyboard
Tutup Xcode dan kemudian buka file ini editor teks apa pun.
Cari
targetRuntime="iOS.CocoaTouch"
dan ubah ketargetRuntime="iOS.CocoaTouch.iPad"
Ubah kode di MainStoryboard_iPad.storyboard dari:
<simulatedScreenMetrics key="destination" type="retina4"/>
untuk<simulatedScreenMetrics key="destination"/>
Sekarang simpan semuanya dan buka kembali Xcode. IPad-Storyboard memiliki konten yang sama dengan file-iPhone tetapi semuanya bisa berantakan.
Ini menghemat waktu saya - semoga ini akan membantu Anda
sumber
start a bounty
bawah pertanyaan, pilih jumlah yang diinginkan danReward existing answer
...<simulatedScreenMetrics key="destination" type="retina4"/>
ke<simulatedScreenMetrics key="destination"/>
Jika Anda telah membuat proyek universal, secara default iPad storyboard kosong akan dibuat, Anda hanya perlu memilih storyboard iPhone pilih semua (Command + A), salin (Command + C) dan tempel di storyboard iPad. Pastikan untuk memindahkan titik masuk dari storyboard kosong ke storyboard yang baru disalin sebelum kompilasi.
sumber
Itu tidak berhasil bagi saya. Saya melakukan sesuatu yang sedikit berbeda.
<scenes> <!--Contents View Controller-->
</class> </classes>
Itu berhasil bagi saya. Saya mendapat layoutout baru dengan semua outlet saya terhubung, yang saja menyelamatkan saya beberapa jam.
sumber
.storyboard
file dan klikOpen As > Source Code
untuk melihat XML mentah.Dari membaca banyak utas di stackoverflow saya menemukan solusinya adalah-
1.Gandakan iPhone-Storyboard Anda dan ganti namanya MainStoryboard_iPad.storyboard
2. klik kanan pada storyboard -> "open as" -> "Source Code".
3.Cari targetRuntime = "iOS.CocoaTouch" dan ubah ke targetRuntime = "iOS.CocoaTouch.iPad"
5. Cari
<simulatedScreenMetrics key="destination" type="retina4"/>
dan ubah ke<simulatedScreenMetrics key="destination"/>
4.Sekarang simpan semuanya dan klik kanan pada MainStoryboard_iPad.storyboard "open as" -> "IOS StoryBoard" 5. Anda mungkin juga harus mengubah batasan Anda. Itu semua yang telah kamu lakukan.
sumber
sumber
1 - Buat
"MainStoryboard_iPad.storyboard";
2 - Klik kanan pada Anda
"MainStoryboard_iPhone.storyboard"
dan "Buka sebagai -> Kode Sumber". Salin semuanya;3- Klik kanan pada Anda
"MainStoryboard_iPad.storyboard"
dan "Buka sebagai -> Kode Sumber". Tempel semuanya. Sekarang Cari dan ubah:targetRuntime="iOS.CocoaTouch" to targetRuntime="iOS.CocoaTouch.iPad"
type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" to type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.iPad.XIB"
4 - Simpan. Sekarang buka kembali tetapi menggunakan pembangun antarmuka. Anda hanya perlu mengatur ulang.
Metode ini dapat digunakan untuk file .xib juga
sumber
Ini sebaliknya, tetapi saya bisa melakukan pilih semua & salin di storyboard iPad saya (~ 35 adegan) dan rekatkan ke storyboard iPhone saya. Ukuran adegan disesuaikan secara otomatis. Saya hanya melihat dua masalah, saya harus mengganti UISplitViewController (karena hanya iPad), dan latar belakang standar menjadi transparan alih-alih abu-abu (masih bekerja untuk memperbaikinya dengan benar, tanpa secara manual mengatur latar belakang untuk semuanya).
EDIT: Tampaknya latar belakang default untuk UITableView di inspektur Atribut agak aneh. Saya harus secara manual mengatur latar belakang ke "Group Table View Background Color" untuk tampilan tabel yang dikelompokkan, dan "White Color" untuk tampilan tabel yang tidak dikelompokkan. Itu kemudian ditampilkan sebagai "Default" (saya berasumsi karena kemudian cocok dengan nilai hardcoded). - Sebenarnya, bahkan lebih mudah, mengubah dari "Dikelompokkan" menjadi "Statis" dan kembali tampaknya mengatur ulang warna default.
sumber
Inilah sesuatu yang menyelamatkan saya berjam-jam dan mungkin membantu Anda dengan keterampilan Python.
Saya telah membangun sebuah aplikasi selama dua bulan terakhir, fokus hanya pada iPad yang mengulang UX bersama tim.
Hari ini fokus membangun versi iPhone, mengikuti langkah-langkah di atas (terima kasih!) Tapi saya tidak ingin kemudian harus mengubah ukuran semua elemen ui dari dimensi iPad di editor storyboard visual.
Jadi saya menulis skrip python jig kecil ini untuk memindai melalui file storyboard untuk x, y, lebar, tinggi dan skala semuanya turun dengan rasio 320./768. Maka saya diizinkan untuk hanya fokus pada penyesuaian halus.
Salin papan cerita iPad Anda ke file baru. (mis. iPhoneStoryboard.storyboard)
Jalankan skrip di bawah ini dengan nama file storyboard yang disalin sebagai parameter pertama.
Akan menghasilkan file keluaran dengan suffix _adjusted.storyboard (mis. IPhoneStoryboard.storyboard_adjusted.storyboard)
Semoga ini bisa membantu ...
sumber
Buka Ringkasan Target Anda dan ubah perangkat menjadi universal, lalu turun dan atur versi ipad ke storyboard apa pun yang Anda suka termasuk yang disalin dan diganti namanya jika Anda mau.
sumber
Seperti halnya pesan singkat kepada mereka yang mungkin memiliki masalah dengan ini:
Masalah saya:
Konten storyboard disalin dengan baik ke file papan baru yang saya tambahkan. Namun, itu tidak akan memberikan perubahan pada iPad saya yang disediakan. Memperhatikan bahwa saya harus beralih ke storyboard yang ditunjuk untuk target build (lihat gambar), biarkan perubahan muncul.
Saya akan memposting gambar jika saya memiliki poin, tetapi pengaturannya terletak di:
Navigator proyek pada menu sumber sisi kiri, target root dari tab umum proyek (panel tengah), (penyebaran kedua) informasi penyebaran, dengan tab tombol iPad dipilih.
Dari sana, pilih storyboard Anda di bawah "antarmuka utama."
Terima kasih untuk posting ini, saya harap penyebutan ini membantu masalah di suatu tempat.
sumber
Hanya untuk bersenang-senang, di XCode 5.1 dan iOS 7.1 Saya juga perlu mengubah nilai "toolVersion" dan "systemVersion" menjadi ini:
Tanpa ini, file storyboard baru tidak akan dikompilasi
sumber
Menggunakan Kelas Ukuran XCode6 Anda tidak perlu lagi mengubah storyboard ke iPad. Storyboard yang sama dapat digunakan untuk iPhone dan iPad, sehingga Anda tidak perlu memperbarui dua file.
Storyboard yang dihasilkan kompatibel dengan iOS7 +.
Baca lebih lanjut tentang ini di sini: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html#//apple_ref/doc/uid/TP40014436-CH6-SW1
Gunakan kelas ukuran untuk mengaktifkan storyboard atau file xib untuk bekerja dengan semua ukuran layar yang tersedia. Ini memungkinkan antarmuka pengguna aplikasi Anda bekerja pada perangkat iOS apa pun.
sumber
Untuk Xcode10
Gandakan saja
Main.storyboard
Kemudian namai ulang file ke
Main_iPad.storyboard
danMain_iPone.storyboard
Tetapkan nama yang sesuai di
.plist
4.Hanya pilih .storyboard yang tepat untuk dikonfigurasi
sumber
Fungsi ini sekarang sudah ada di dalam. Misalnya, jika seseorang mengubah pengaturan proyek di Info Penempatan -> Perangkat dari iPhone ke Universal, dialog berikut akan muncul:
sumber
Saya mengikuti utas ini ketika saya terkena masalah yang sama kemarin. Langkah-langkah yang saya ikuti
targetRuntime="iOS.CocoaTouch"
menjaditargetRuntime="iOS.CocoaTouch.iPad"
<simulatedScreenMetrics key="destination" type="retina4"/>
menjadi<simulatedScreenMetrics key="destination"/>
Itu saja .. Terima kasih semua atas bantuan Anda ..
sumber
Cara termudah dan paling dapat diandalkan untuk melakukan ini adalah dengan menyalin tempel dari storyboard iPad Anda.
Anda harus mengubah ukuran, tetapi bisa lebih cepat daripada membuat ulang seluruh storyboard.
sumber
Ada solusi yang sangat sederhana untuk versi Xcode yang mendukung kelas ukuran (Diuji dalam Xcode 7 yang merupakan versi saat ini pada saat penulisan). Centang kotak "gunakan kelas ukuran" pada file papan cerita ( Pemeriksa File ), konfirmasikan dialog yang muncul. Kemudian hapus centang pada kotak yang sama - Xcode akan menanyakan Anda apakah Anda ingin menggunakan storyboard ini dengan iPhone atau iPad, dan mengonversi layar di dalamnya dengan tepat. Tidak perlu mengedit file storyboard secara langsung . Untuk iPad dan iPhone, cukup salin storyboard yang sama dan konfigurasikan satu untuk iPad dan satu untuk iPhone menggunakan metode yang dijelaskan.
Dan Sebelum seseorang menyarankan untuk menggunakan kelas ukuran - sementara hebat, mereka kurang nyaman untuk UI yang sangat disesuaikan, seperti game dll
sumber
Pendekatan Yang Berbeda
Tambahkan kosong-View-Controller dengan Navigasi-Controller di iPad-Storyboard
Ubah Kelas ke Kelas ViewController pertama Anda yang digunakan untuk iPhone, "fooViewController"
Tambahkan Storyboard-Identifier di iPhone-Storyboard "fooViewController_storyboard_identifier" untuk ViewController pertama
Pergi ke "fooViewController.m"
Tambahkan bool variabel bool
nibWasLoadForIpad=false
Pergi ke
viewDidLoad
-Metode(ps. Ketahui masalahnya adalah bahwa latar belakang tampilan akan diatur ke putih)
sumber
Anda harus membuat laporan bug dengan Apple. Anda dapat mengatakan itu adalah duplikat milik saya (10167030) yang telah dibuka sejak September 2011. Hal yang membuat frustrasi dari sudut pandang saya adalah bahwa fitur tersebut ada di Xcode 3 ...
sumber
Terima kasih atas jawaban semuanya.
Saya mengikuti langkah-langkah di atas, tetapi ketika saya menjalankan aplikasi di bawah simulator atau iPad saya itu terus hanya menggunakan storyboard iPhone.
Untuk beberapa alasan, ketika saya mengubah perangkat target menjadi Universal dan bukan iPhone, Xcode (v5.0) tidak memperbarui file app-Info.plist untuk menyertakan storyboard iPad, jadi saya harus menambahkan entri berikut secara manual ( menggunakan editor plist di Xcode):
Nama dasar file storyboard utama (iPad) ==> MainStoryboard_iPad
sumber
Saya baru saja mengubah (selain jawaban dari @tharkay):
dan bekerja dengan baik!
Saya menggunakan ini di XCode 8.3.3
sumber