Peringatan Atribut Tidak Tersedia pada versi iOS sebelum 8.0

Apa yang menyebabkan peringatan ini pada pembuat antarmuka?

Atribut Tidak Tersedia Atribut tata letak relatif terhadap margin tata letak pada versi iOS sebelum 8.0.

Saya menggunakan XCode 6 Beta. Peringatannya menunjuk ke baris di sumber xml yang tidak berhubungan dengan atribut.


person GLee    schedule 12.08.2014    source sumber


Jawaban (5)


Karena saya sudah membuat batasannya, jawabannya adalah klik pada batasan tersebut, lalu lihat di bilah Utilitas (di sebelah kanan). Seperti yang ditunjukkan pada gambar di bawah, klik item dan pastikan "relatif terhadap margin" tidak dicentang.

Relatif terhadap tangkapan layar margin

person GLee    schedule 15.08.2014
comment
lihat komentar #3 oleh @Matt-Gibson untuk jawaban ini stackoverflow.com/a/25261327/2147244 - person Sergey Markelov; 20.09.2014
comment
Anda harus menyesuaikan konstanta jika Anda melakukan ini karena ini akan menggeser pandangan Anda dengan jumlah piksel dari jarak margin. - person Joris Weimar; 16.10.2014
comment
@GLee, Anda menyelamatkan saya. Saya telah memeriksa margin relatif pada beberapa kendala. Ketika saya mengubah batasan menjadi 0, itu akan menyesuaikan tampilan sebesar 16/-16. Jika saya memperbaikinya, batasannya akan berubah. Pilihan itu dapat diatur pada item pertama atau kedua. Menghapusnya memecahkan masalah kendala saya yang sudah berlangsung lama. - person Dan Loughney; 08.05.2015

Saat Anda menambahkan batasan di Xcode 6, Anda memiliki opsi "Batasi ke margin" yang membuat batasan berbeda dan tidak dapat dibaca, misalnya, di Xcode 5. Buat batasan tanpa opsi ini dan peringatan akan hilang. Batasan ini akan tersedia di iOS 8.

masukkan deskripsi gambar di sini

Jika Anda sudah membuat batasannya, kita dapat mengubahnya dengan mengklik batasan tersebut dan mengeditnya. Saat memilih item kedua, Anda dapat menghapus centang pada opsi "Relatif terhadap margin" (seperti yang dijelaskan dalam jawaban GLee.

person Tchelow    schedule 14.08.2014
comment
Anda juga dapat mengganti fitur ini untuk batasan individual saat membuat batasan dengan menyeret kontrol di IB. Setelah Anda menyeret kontrol dan menampilkan menu yang menunjukkan kemungkinan kendala Anda, tahan Option. Itu akan berubah, mis. Memimpin Ruang ke Margin Kontainer menjadi sekadar Memimpin Ruang ke Kontainer. Mungkin berguna jika Anda hanya ingin melakukan ini untuk batasan sesekali daripada mengubah default. - person Matt Gibson; 21.08.2014
comment
Ngomong-ngomong, tidak ada opsi seperti preferensi margin relatif pada Xcode 6. Sungguh luar biasa betapa jeleknya xcode. Saya telah membuat batasan secara otomatis dengan memilih reset ke batasan yang disarankan dan batasan yang dibuat oleh xcode memiliki masalah ini. Xcode harus dibakar dalam upacara dengan bulan purnama dan dipersembahkan kepada dewa ketidakmampuan. Mungkin mereka akan mengembalikan hadiah yang begitu indah. - person Duck; 11.09.2014
comment
Saya menyarankan Anda menambahkan opsi ini dan sebaiknya ini adalah hal pertama yang harus dicoba seseorang - person Lucas van Dongen; 11.09.2014
comment
Saya memperbarui info dan gambar untuk menampilkan nama bidang yang tepat karena Apple mengubahnya di versi terakhir Xcode (GM ATM). - person Tchelow; 12.09.2014
comment
@Matt Gibson, tip yang luar biasa kawan, saya telah menghapus secara manual relatif terhadap pengaturan margin/menyesuaikan batasan selama ini. Ini akan sangat menghemat waktu. - person Adam Eisfeld; 27.01.2015

Jika Anda tidak dapat menemukan dari mana peringatan itu berasal, Anda dapat menggunakan grep ini untuk menemukannya.

Jalankan ini di Terminal di direktori proyek Anda:

grep -C 6 -nr Margin .

Angka 6 menunjukkan berapa banyak baris konteks yang harus ditampilkan sebelum dan sesudah pertandingan.

person Collin    schedule 23.09.2014
comment
Saya mengganti Margin dengan trailingMargin, topMargin, leadMargin, dan bottomMargin untuk hasil yang jauh lebih baik dalam menemukan dari mana peringatan tersembunyi itu berasal. - person Nur Iman Izam; 30.09.2014
comment
Anda juga dapat mengklik kanan pada file storyboard Anda di dalam navigator Proyek Xcode dan memilih Buka Sebagai -› Kode Sumber. Kemudian cari saja file Margin seperti yang dinyatakan Collin. - person Gasper; 04.10.2014

Menurut Gasper Kolenc, membuka storyboard sebagai Kode Sumber sangat berguna. Berikut ini sedikit info lebih lanjut dari pengalaman saya memperbaiki masalah ini:

  1. Dalam kode sumber storyboard, cari "margin". Anda akan melihat baris seperti ini.

    batasan firstAttribute="trailingMargin" secondItem="Pgb-8w-IHT" secondAttribute="trailing" konstanta="8" id="nKP-uZ-7Xm"/

  2. Temukan id salah satu atribut (Pgb-8w-IHT pada contoh di atas).

  3. Gulir ke atas untuk menemukan di objek mana batasan ini berada. Sesuatu seperti:

    tableViewCell contentMode="scaleToFill" choiceStyle="default"

  4. Beralih kembali ke tampilan storyboard dan tampilkan jendela pemeriksa identitas.

  5. Telusuri subview objek yang Anda temukan di atas untuk menemukan id (Pgb-8w-IHT) pada pemeriksa identitas.

  6. Setelah ditemukan, periksa batasan untuk menemukan batasan yang perlu dihapus dan dibuat ulang tanpa opsi batasan pada margin yang dipilih (gunakan konstanta = " " sebagai petunjuk".

person Kevin Kaiser    schedule 06.10.2014

Dalam kasus saya, saya harus menghapus centang "Gunakan Tata Letak Otomatis" dari storyboard saya di File Inspector, dan mengulangi semua batasan di aplikasi saya, dengan cara lama dengan persegi panjang merah yang menyusut/memperbesar.

Kelas Ukuran sudah dinonaktifkan dan targetnya adalah IOS 7.1.

Namun pikirkan baik-baik jika Anda memiliki terlalu banyak View Controller, dan telah membuat semua batasan Anda. Saat Anda menonaktifkan tata letak otomatis, Xcode menghapus semua batasan otomatis dan kembali ke model lama. Maka Anda harus melakukan semua pekerjaan itu lagi.

Ini adalah satu-satunya cara saya menghilangkan peringatan Atribut Tidak Tersedia.

person user8925456    schedule 23.07.2015