Saya mencoba mengatur warna perbatasan khusus UIView secara terprogram di Swift.
Saya mencoba mengatur warna perbatasan khusus UIView secara terprogram di Swift.
Jawaban:
Jika Anda Menggunakan Swift 2.0+
self.yourView.layer.borderWidth = 1
self.yourView.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).cgColor
Di Swift 4 Anda dapat mengatur warna dan lebar perbatasan ke UIControls menggunakan kode di bawah ini.
let yourColor : UIColor = UIColor( red: 0.7, green: 0.3, blue:0.1, alpha: 1.0 )
yourControl.layer.masksToBounds = true
yourControl.layer.borderColor = yourColor.CGColor
yourControl.layer.borderWidth = 1.0
<Swift 4 , Anda dapat mengatur lebar bingkai dan warna bingkai UIView menggunakan kode di bawah ini.
yourView.layer.borderWidth = 1
yourView.layer.borderColor = UIColor.red.cgColor
Gunakan @IBDesignable dan @IBInspectable untuk melakukan hal yang sama.
Mereka dapat digunakan kembali, dengan mudah dapat dimodifikasi dari Pembuat Antarmuka dan perubahannya langsung tercermin di Papan Cerita
Sesuaikan objek di storyboard dengan kelas tertentu
Cuplikan Kode:
@IBDesignable
class CustomView: UIView{
@IBInspectable var borderWidth: CGFloat = 0.0{
didSet{
self.layer.borderWidth = borderWidth
}
}
@IBInspectable var borderColor: UIColor = UIColor.clear {
didSet {
self.layer.borderColor = borderColor.cgColor
}
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
}
}
Mengizinkan modifikasi mudah dari Pembuat Antarmuka:
@IBDesignabledan @IBInspectablesemuanya bekerja dengan baik, jadi harus ada cara bagi bea cukai untuk menggunakan Aset Warna dengan mode gelap / terang juga ~ ada yang tahu bagaimana mencapainya?
Anda dapat menulis ekstensi untuk menggunakannya dengan semua UIViews misalnya. UIButton, UILabel, UIImageView dll. Anda dapat menyesuaikan metode berikut sesuai kebutuhan Anda, tetapi saya pikir ini akan bekerja dengan baik untuk Anda.
extension UIView{
func setBorder(radius:CGFloat, color:UIColor = UIColor.clearColor()) -> UIView{
var roundView:UIView = self
roundView.layer.cornerRadius = CGFloat(radius)
roundView.layer.borderWidth = 1
roundView.layer.borderColor = color.CGColor
roundView.clipsToBounds = true
return roundView
}
}
Pemakaian:
btnLogin.setBorder(7, color: UIColor.lightGrayColor())
imgViewUserPick.setBorder(10)
cepat 3
func borderColor(){
self.viewMenuItems.layer.cornerRadius = 13
self.viewMenuItems.layer.borderWidth = 1
self.viewMenuItems.layer.borderColor = UIColor.white.cgColor
}
Swift 5.2 , UIView + Ekstensi
extension UIView {
public func addViewBorder(borderColor:CGColor,borderWith:CGFloat,borderCornerRadius:CGFloat){
self.layer.borderWidth = borderWith
self.layer.borderColor = borderColor
self.layer.cornerRadius = borderCornerRadius
}
}
Anda menggunakan ekstensi ini;
yourView.addViewBorder(borderColor: #colorLiteral(red: 0.6, green: 0.6, blue: 0.6, alpha: 1), borderWith: 1.0, borderCornerRadius: 20)
Tulis kode di file viewDidLoad()
self.view.layer.borderColor = anyColor().CGColor
Dan Anda dapat mengatur ColordenganRGB
func anyColor() -> UIColor {
return UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0)
}
Pelajari sesuatu tentang CALayerdiUIKit
swift 3.0
self.uiTextView.layer.borderWidth = 0.5
self.txtItemShortDes.layer.borderColor = UIColor(red:205.0/255.0, green:205.0/255.0, blue:205.0/255.0, alpha: 1.0).cgColor
Kita bisa membuat metode untuk itu. Gunakan saja.
public func createBorderForView(color: UIColor, radius: CGFloat, width: CGFloat = 0.7) {
self.layer.borderWidth = width
self.layer.cornerRadius = radius
self.layer.shouldRasterize = false
self.layer.rasterizationScale = 2
self.clipsToBounds = true
self.layer.masksToBounds = true
let cgColor: CGColor = color.cgColor
self.layer.borderColor = cgColor
}
Swift 3.0.0
groundTrump.layer.borderColor = UIColor.red.cgColor