我试图在Swift中以编程方式设置UIView的自定义边框颜色。
答案 0 :(得分:177)
如果您使用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
答案 1 :(得分:76)
在 Swift 4 中,您可以使用以下代码将边框颜色和宽度设置为UIControls。
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
<强>&LT; Swift 4 ,您可以使用以下代码设置UIView的边框宽度和边框颜色。
yourView.layer.borderWidth = 1
yourView.layer.borderColor = UIColor.red.cgColor
答案 2 :(得分:15)
使用 @IBDesignable 和 @IBInspectable 执行相同的操作。
它们可以重复使用,可以从Interface Builder轻松修改,并且更改会立即反映在故事板中
使故事板中的对象符合特定类
代码段:
@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()
}
}
允许从Interface Builder轻松修改
答案 3 :(得分:12)
您可以编写扩展名以将其与所有UIViews一起使用,例如。 UIButton,UILabel,UIImageView等 您可以根据自己的要求自定义我的以下方法,但我认为它适用于您。
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
}
}
用法:
btnLogin.setBorder(7, color: UIColor.lightGrayColor())
imgViewUserPick.setBorder(10)
答案 4 :(得分:8)
swift 3
func borderColor(){
self.viewMenuItems.layer.cornerRadius = 13
self.viewMenuItems.layer.borderWidth = 1
self.viewMenuItems.layer.borderColor = UIColor.white.cgColor
}
答案 5 :(得分:3)
将代码写入viewDidLoad()
self.view.layer.borderColor = anyColor().CGColor
您可以使用Color
RGB
func anyColor() -> UIColor {
return UIColor(red: 0.0/255.0, green: 0.0/255.0, blue: 0.0/255.0, alpha: 1.0)
}
在CALayer
UIKit
的内容
答案 6 :(得分:3)
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
答案 7 :(得分:3)
我们可以为它创建方法。只需使用它。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
<div class="main-div">
<img src="" />
<div class="text">bla bla</div>
<a class="button-a">Link 1</a>
<a class="button-b">Link 2</a>
</div>
<div class="main-div">
<img src="" />
<div class="text">bla bla</div>
<a class="button-a">Link 1</a>
<a class="button-b">Link 2</a>
</div>
<div class="main-div">
<img src="" />
<div class="text">bla bla</div>
<a class="button-a">Link 1</a>
<a class="button-b">Link 2</a>
</div>
答案 8 :(得分:2)
Swift 3.0
groundTrump.layer.borderColor = UIColor.red.cgColor
答案 9 :(得分:1)
Swift 5.2 , UIView + Extension
extension UIView {
public func addViewBorder(borderColor:CGColor,borderWith:CGFloat,borderCornerRadius:CGFloat){
self.layer.borderWidth = borderWith
self.layer.borderColor = borderColor
self.layer.cornerRadius = borderCornerRadius
}
}
您使用了该扩展名;
yourView.addViewBorder(borderColor: #colorLiteral(red: 0.6, green: 0.6, blue: 0.6, alpha: 1), borderWith: 1.0, borderCornerRadius: 20)
答案 10 :(得分:1)
Swift 5*
我,总是使用视图扩展来使视图角变圆,设置边框颜色和宽度,这对我来说是最方便的方法。只需复制并粘贴此代码并在属性检查器中控制这些属性即可。
extension UIView {
@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable
var borderColor: UIColor? {
get {
if let color = layer.borderColor {
return UIColor(cgColor: color)
}
return nil
}
set {
if let color = newValue {
layer.borderColor = color.cgColor
} else {
layer.borderColor = nil
}
}
}
}