如何以编程方式设置UIView的自定义边框颜色?
我想在Swift中以编程方式设置UIView的自定义边框颜色。
如果你想自定义颜色,请使用下面的代码…
如果您使用Swift 2.0-
self.yourView.layer.borderWidth = 1 self.yourView.layer.borderColor = UIColor(red:222/255.0, green:225/255.0, blue:227/255.0, alpha: 1.0).cgColor
如果你使用Swift 3.1或后者 –
self.yourView.layer.borderWidth = 1 self.yourView.layer.borderColor = UIColor.init(red:222/255.0, green:225/255.0, blue:227/255.0, alpha: 1.0).cgColor
你可以使用下面的代码来设置UIView的边框宽度和边框颜色。
yourView.layer.borderWidth = 1 yourView.layer.borderColor = UIColor.red.cgColor
使用@IBDesignable和@IBInspectable来做同样的事情。
它们是可重用的,可以从界面生成器轻松修改,并且更改立即反映在故事板中
使故事板中的对象符合特定的类
代码片段:
@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() } }
允许从界面生成器轻松修改:
你可以写一个扩展名,用它来处理所有的UIViews。 UIButton,UILabel,UIImageView等您可以根据您的要求定制我的以下方法,但我认为它会适合你。
extension UIView{ func _गोल_करा(radius:CGFloat, color:UIColor = UIColor.clearColor()) -> UIView{ var rounfView:UIView = self rounfView.layer.cornerRadius = CGFloat(radius) rounfView.layer.borderWidth = 1 rounfView.layer.borderColor = color.CGColor rounfView.clipsToBounds = true return rounfView } }
用法:
btnLogin._गोल_करा(7, color: UIColor.lightGrayColor()) imgViewUserPick._गोल_करा(10)
把代码写在你的viewDidLoad()
self.view.layer.borderColor = anyColor().CGColor
你可以用RGB
设置Color
func anyColor() -> UIColor { return UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0) }
在UIKit
学习一些关于CALayer
的知识
迅速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
Swift 3.0
groundTrump.layer.borderColor = UIColor.red.cgColor
迅速3
func borderColor(){ self.viewMenuItems.layer.cornerRadius = 13 self.viewMenuItems.layer.borderWidth = 1 self.viewMenuItems.layer.borderColor = UIColor.white.cgColor }