Saya menggunakan tombol kustom di aplikasi saya bernama "addButton" dan saya ingin membatasinya dengan warna putih bagaimana saya bisa mendapatkan perbatasan warna putih di sekitar tombol kustom saya?
ios
objective-c
iPhone
sumber
sumber
Jawaban:
Anda dapat mengatur properti perbatasan pada CALayer dengan mengakses properti lapisan tombol.
Pertama, tambahkan Kuarsa
Setel properti:
Lihat:
https://developer.apple.com/documentation/quartzcore/calayer#//apple_ref/occ/cl/CALayer
CALayer di tautan di atas memungkinkan Anda untuk mengatur properti lain seperti radius sudut, maskToBounds dll ...
Juga, artikel bagus tentang tombol menyenangkan:
https://web.archive.org/web/20161221132308/http://www.apptite.be/tutorial_custom_uibuttons.php
sumber
CGColor
Ini sangat sederhana, cukup tambahkan header quartzCore di file Anda (untuk itu Anda harus menambahkan kerangka kuarsa ke proyek Anda)
dan kemudian lakukan ini
Anda dapat mengubah nilai float sesuai kebutuhan.
Nikmati.
Berikut ini beberapa kode modern khas ...
itu mirip dengan kontrol tersegmentasi.
Kerjakan saja:
sumber
Dan dengan cepat, Anda tidak perlu mengimpor "QuartzCore / QuartzCore.h"
Cukup gunakan:
atau
sumber
Masalah pengaturan lapisan
borderWidth
danborderColor
adalah bahwa ketika Anda menyentuh tombol perbatasan tidak menghidupkan efek highlight.Tentu saja, Anda dapat mengamati acara tombol dan mengubah warna perbatasan sesuai tetapi itu terasa tidak perlu.
Pilihan lain adalah membuat UIImage yang dapat direnggangkan dan mengaturnya sebagai gambar latar tombol. Anda dapat membuat set gambar di Images.xcassets Anda seperti ini:
Kemudian, Anda mengaturnya sebagai gambar latar tombol:
Jika gambar Anda adalah gambar templat, Anda dapat mengatur warna warna tombol dan batas akan berubah:
Sekarang perbatasan akan menyorot dengan sisa tombol saat disentuh.
sumber
borderWidth
.Untuk mengubah tombol Radius, Warna dan Lebar saya atur seperti ini:
sumber
Ini versi terbaru ( Swift 3.0.1 ) dari jawaban Ben Packard .
Tombol yang dihasilkan dapat digunakan di dalam StoryBoard Anda berkat
@IBDesignable
dan@IBInspectable
tag.Juga dua properti yang ditentukan, memungkinkan Anda untuk mengatur lebar perbatasan dan warna langsung pada pembangun antarmuka dan mempratinjau hasilnya.
Properti lainnya dapat ditambahkan dengan cara yang sama, untuk radius perbatasan dan menyoroti waktu fading.
sumber
prepareForInterfaceBuilder
hanya dipanggil dari IB, bukan ketika Anda menjalankan aplikasi. Begitu juga mengatur UIEdgeInsets diawakeFromNib
, maka itu akan ditampilkan juga ketika menjalankan aplikasi.Anda tidak perlu mengimpor
QuartzCore.h
sekarang. Mengambil iOS 8 sdk dan Xcode 6.1 sebagai referensi.Langsung menggunakan:
sumber
Berikut adalah
UIButton
subkelas yang mendukung animasi status yang disorot tanpa menggunakan gambar. Ini juga memperbarui warna tepi ketika mode tampilan berubah.Pemakaian:
let button = BorderedButton(style: .System) //style .System is important
Penampilan:
sumber
Ini dapat dicapai dalam berbagai metode di Swift 3.0 Bekerja pada Versi terbaru Agustus - 2017
Secara langsung menetapkan nilai properti borderWidth untuk Tombol UI:
Tetapkan Judul dengan nilai Warna Default untuk Tombol UI:
Tetapkan Batas dengan Warna Default untuk nilai properti perbatasan untuk Tombol UI:
Tetapkan Warna yang ditentukan pengguna untuk nilai properti perbatasan untuk Tombol UI:
Gunakan metode Extension, sehingga Tombol di seluruh aplikasi akan terlihat konsisten dan tidak perlu mengulangi beberapa baris kode di mana saja.
Penggunaan dalam kode:
Output dari tombol Metode Ekstensi:
sumber
Perbarui dengan Swift 3
sumber
**** Dalam Swift 3 ****
Untuk membuat perbatasan
Untuk membuat sudut membulat
sumber
Cepat 5
Untuk mengubah warna perbatasan gunakan
sumber