Apakah mungkin untuk mengontrol properti perbatasan UIView (warna, ketebalan, dll ...) langsung dari pembuat antarmuka atau saya hanya dapat melakukannya secara terprogram?
ios
uiview
interface-builder
border
matteo.cajani
sumber
sumber
Jawaban:
Sebenarnya Anda dapat mengatur beberapa properti lapisan tampilan melalui pembangun antarmuka. Saya tahu bahwa saya dapat mengatur borderWidth layer dan cornerRadius melalui xcode. borderColor tidak berfungsi, mungkin karena layer menginginkan CGColor bukan UIColor.
Anda mungkin harus menggunakan Strings sebagai ganti angka, tetapi itu berhasil!
sumber
Jawaban Rich86Man benar, tetapi Anda dapat menggunakan kategori untuk proksi properti seperti layer.borderColor. (Dari CocoaPod Konvensional )
CALayer + XibConfiguration.h:
CALayer + XibConfiguration.m:
Hasilnya akan jelas selama runtime, bukan di Xcode.
Sunting : Anda juga harus menetapkan
layer.borderWidth
setidaknya 1 untuk melihat batas dengan warna yang dipilih.Dalam Swift 2.0:
Di Swift 3.0:
sumber
Mirip dengan jawaban iHulk, tetapi di Swift
Tambahkan file bernama UIView.swift di proyek Anda (atau cukup tempel ini di file apa pun):
Maka ini akan tersedia di Interface Builder untuk setiap tombol, imageView, label, dll. Di Utilities Panel> Attributes Inspector:
Catatan: perbatasan hanya akan muncul saat runtime.
sumber
@IBDesignable
dari awal ekstensi.Anda dapat membuat kategori UIView dan menambahkannya dalam file .h kategori
Sekarang tambahkan ini dalam file .m
dan ini juga di. file m
sekarang Anda akan melihat ini di storyboard Anda untuk semua subclass UIView (UILabel, UITextField, UIImageView dll)
Itu .. Tidak Perlu mengimpor kategori di mana saja, cukup tambahkan file kategori dalam proyek dan lihat properti ini di storyboard.
sumber
Untuk Swift 3 dan 4 , jika Anda bersedia menggunakan
IBInspectable
s, ini dia:sumber
sementara ini mungkin mengatur properti, itu sebenarnya tidak tercermin dalam IB. Jadi jika Anda pada dasarnya menulis kode dalam IB, Anda mungkin juga melakukannya dalam kode sumber Anda
sumber
Jika Anda ingin menghemat waktu, cukup gunakan dua
UIViews
di atas satu sama lain, satu di belakang menjadi warna perbatasan, dan satu di depan lebih kecil, memberikan efek berbatasan. Saya tidak berpikir ini adalah solusi yang elegan juga, tetapi jika Apple sedikit peduli maka Anda tidak harus melakukan ini.sumber
Ini benar-benar mungkin hanya ketika Anda mengatur
layer.masksToBounds = true
dan melakukan hal-hal lainnya.sumber
Jadi jawabannya selalu sempurna adalah menggunakan kode, Cukup buat instance IBOutlet dari UIView dan tambahkan properti
Jawaban singkat :
Jawaban panjang :
Sudut Bulat dari UIView / UIButton dll
Ketebalan perbatasan
Warna perbatasan
sumber
Silakan tambahkan 2 baris kode sederhana ini:
Ini akan bekerja dengan baik.
sumber