Yang ingin saya lakukan adalah menyeret komponen / tampilan dari satu superview ke superview lainnya di pembuat antarmuka Xcode tanpa bingkai / posisinya disetel ulang.
Perilaku default Xcode saat melakukan ini tampaknya memusatkan tampilan yang dipindahkan secara vertikal dan horizontal dalam tampilan super barunya, sambil mempertahankan dimensinya. Ini sangat menjengkelkan, karena itu berarti tampilan harus diatur ulang posisinya secara manual di superview barunya. Tetapi saya telah memposisikannya dengan benar sebelum saya memindahkannya, jadi saya ingin Xcode hanya mengingat semua atribut bingkainya, bukan hanya lebar / tingginya. Apakah ini mungkin?
ios
xcode
interface-builder
aroth
sumber
sumber
Jawaban:
Solusi lain:
sumber
Saya menemukan sesuatu yang mungkin bisa membantu kalian!
Tugasnya adalah untuk mengelompokkan kembali "tampilan anak" menjadi "tampilan induk" sehingga mereka menjadi anak dari tampilan induk secara hierarki dan mempertahankan posisi fisik pada tampilan seperti sebelum tindakan.
Pertama, sesuaikan tampilan induk agar secara fisik menutupi area tampilan anak. Kedua, pastikan bahwa semua anak di bawahnya dalam daftar tampilan.
Sekarang pilih semua anak dengan mouse dan gerakkan mereka, misalnya satu piksel ke atas dan satu piksel ke bawah (hanya untuk mengatakan IB ada beberapa perubahan). Setelah itu lepaskan anak-anak dan mereka secara ajaib akan menjadi anak-anak dari orang tua dan tetap memajang posisi mereka.
Ini berfungsi untuk saya di OSX 10.8.2 dan Xcode 4.6.
Semoga berhasil!
sumber
Saya berhasil menghemat banyak waktu yang dihabiskan untuk memposisikan ulang barang dan melakukan ini:
Tidak terlalu elegan, tidak bisa melihat mengapa XCode tidak mendukungnya dengan Shift atau sesuatu.
sumber
Pilih semua kontrol yang ingin Anda pindahkan dari satu UIView ke UiView lain (bukan anak-anak) atau ScrollView
Potong / Salin
Sekarang setelah menyeret UIView / ScrollView baru ke UIView Anda yang ada, Jangan klik sekali untuk memilihnya, sebaliknya klik GANDA pada UIView / ScrollView baru dan tempel semua kontrol.
Perbedaan jarak akan tetap sama di antara semua kontrol, tetapi Anda mungkin harus mengubah posisi kontrol lagi. Jadi jangan klik di mana pun sampai Anda telah mengubah posisinya, cukup ubah posisi semua kontrol dengan panah navigasi karena semuanya sudah dipilih, atau Anda dapat memilihnya lagi.
CATATAN: Saya menggunakan XCode 4.2
sumber
Saya telah melakukan sesuatu yang mirip dengan solusi Stepan, tanpa menggunakan papan cerita. Di IB saat tampilan ViewController terbuka:
sumber
Ini adalah solusi terbaik untuk menyalin subview ke tampilan lain dan mempertahankan posisi:
Langkah 6 akan menghapus tampilan embedding dan Anda akan menyalin subview saja.
sumber
Xcode Interface Builder kacau saat Parent View diseret dan dijatuhkan ke View lain (UIView, ScrollView, StackView)
T:
Menyematkan Tampilan (yang berisi banyak subview lain di dalamnya) ke ScrollView atau tampilan tingkat atas lainnya tidak langsung dengan apa yang telah saya lihat sejauh ini. Apa yang terjadi segera setelah itu adalah semua subview mungkin tampak salah tempat karena tidak dapat menemukan bingkai aslinya.
J:
Ikuti langkah-langkah berikut dan Anda akan dapat menyelesaikannya semudah mungkin:
Tidak, belum selesai! Terkadang, Anda mungkin mengalami bahwa ada beberapa masalah terkait Kendala UI, Anda harus menyelesaikannya sesuai dengan itu.
sumber
Saya mendeteksi pendekatan lain. Pada dasarnya: Pindah = Potong + Tempel
Dengan cara ini Anda melakukannya:
Dengan cara ini Anda tidak:
Dasar masalahnya adalah bahwa setiap tampilan kecuali satu (root) di Storyboard memiliki tampilan induknya . Selanjutnya, saat Anda menyalin / memindahkan beberapa subview, Anda kehilangan bingkai dan batasan .
Jawabannya cukup sederhana. Anda membuat salinan subview (SVs) Anda dengan menyalin tampilan induknya (P) ke tampilan induk baru (P '). Dengan cara ini Anda mungkin perlu membuat ulang batasan dari tampilan baru induk (P ') ke tampilan induk barunya, tetapi tidak untuk setiap subview yang ingin Anda pindahkan.
Setelah Anda membuat salinan tampilan induk (P) menjadi yang baru (P '), dari tampilan baru itu (P') Anda:
Dan dari tampilan orang tua asli (P) Anda:
Sebelum:
Setelah:
Saya harus menekankan bahwa ini tidak menggeneralisasi dengan baik jika Anda memiliki misalnya UIScrollView sebagai pandangan orang tua. Kemudian salinannya akan menjadi UIScrollView yang mungkin tidak diinginkan.
Hal lainnya adalah ketika Anda menghapus beberapa subview (SV) dalam tampilan induk asli (P), Anda mungkin perlu membuat ulang beberapa batasan jika yang lain (subview tidak dapat dipindahkan) mereferensikannya. Tapi Anda tetap harus melakukannya.
sumber
Apa yang membantu saya mengatasi masalah ini adalah-
sumber