Saya memiliki UIView
dan saya mengatur batasan menggunakan Xcode Interface Builder.
Sekarang saya perlu memperbarui UIView's
ketinggian itu secara konstan secara terprogram.
Ada fungsi yang seperti itu myUIView.updateConstraints()
, tapi saya tidak tahu bagaimana menggunakannya.
swift
xcode
autolayout
nslayoutconstraint
ios-autolayout
Chris Mikkelsen
sumber
sumber
Jawaban:
Pilih batasan ketinggian dari pembuat Antarmuka dan ambil jalan keluarnya. Jadi, saat ingin mengubah ketinggian view bisa menggunakan kode di bawah ini.
Metode
updateConstraints()
adalah metode contohUIView
. Ini berguna saat Anda menyetel batasan secara terprogram. Ini memperbarui batasan untuk tampilan. Untuk lebih jelasnya klik disini .sumber
Jika Anda memiliki tampilan dengan banyak batasan, cara yang jauh lebih mudah tanpa harus membuat banyak outlet adalah:
Dalam pembuat antarmuka, berikan setiap batasan yang ingin Anda ubah pengenalnya:
Kemudian dalam kode Anda dapat memodifikasi beberapa batasan seperti:
Anda dapat memberikan beberapa batasan pada pengenal yang sama sehingga memungkinkan Anda untuk mengelompokkan batasan dan mengubah semuanya sekaligus.
sumber
Berubah
HeightConstraint
danWidthConstraint
Tanpa membuatIBOutlet
.Catatan: Tetapkan batasan tinggi atau lebar di Storyboard atau file XIB. setelah mengambil Batasan ini menggunakan ekstensi ini.
Anda dapat menggunakan ekstensi ini untuk mengambil Batasan tinggi dan lebar:
Kamu bisa memakai:
sumber
first(where: ...)
yang dapat Anda gunakan segera daripadafilter
+first
Seret batasan ke VC Anda sebagai IBOutlet. Kemudian Anda dapat mengubah nilai terkait (dan properti lainnya; periksa dokumentasi):
sumber
sumber
Jika metode di atas tidak berhasil maka pastikan Anda memperbaruinya di blok {} Dispatch.main.async. Anda tidak perlu memanggil metode layoutIfNeeded () kemudian.
sumber
Pertama hubungkan kendala Ketinggian ke viewcontroller kami untuk membuat IBOutlet seperti kode di bawah ini yang ditunjukkan
kemudian letakkan kode di bawah ini dalam tampilan tidak memuat atau di dalam tindakan apa pun
jika di dalam klik tombol
sumber
Untuk memperbarui batasan tata letak, Anda hanya perlu memperbarui properti konstanta dan memanggil layoutIfNeeded setelahnya.
sumber
sumber