Как установить пользовательский цвет границы UIView программно?



Я пытаюсь установить пользовательский цвет границы UIView программно в Swift.

483   9  

9 ответов:

Если вы хотите настроить цвет, используйте код ниже...

Если вы используете 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

Если вы используете Swift 3.1 или последний -

self.yourView.layer.borderWidth = 1
self.yourView.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).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()
}

}

позволяет легко изменять от Interface Builder:

Interface Builder

swift 3

func borderColor(){

    self.viewMenuItems.layer.cornerRadius = 13
    self.viewMenuItems.layer.borderWidth = 1
    self.viewMenuItems.layer.borderColor = UIColor.white.cgColor
}

вы можете написать расширение, чтобы использовать его со всеми UIViews например. UIButton, UILabel, UIImageView etc. Вы можете настроить мой следующий метод в соответствии с вашим требованием, но я думаю, что это будет хорошо работать для вас.

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)

написать код 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

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

Swift 3.0

       groundTrump.layer.borderColor = UIColor.red.cgColor

мы можем создать метод для этого. Просто используйте его.

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
}

Comments

    Ничего не найдено.