Я пытаюсь программно установить пользовательский цвет границы UIView в Swift.
Я пытаюсь программно установить пользовательский цвет границы UIView в Swift.
Ответы:
Если вы используете 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 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
<Swift 4 , вы можете установить ширину и цвет границы UIView, используя приведенный ниже код.
yourView.layer.borderWidth = 1
yourView.layer.borderColor = UIColor.red.cgColor
Используйте @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:
@IBDesignableи @IBInspectableвсе работает хорошо, поэтому у таможни должен быть способ использовать Color Assets и в темном, и в светлом режиме ~ кто-нибудь знает, как этого добиться?
Вы можете написать расширение, чтобы использовать его со всеми UIView, например. 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)
быстрый 3
func borderColor(){
self.viewMenuItems.layer.cornerRadius = 13
self.viewMenuItems.layer.borderWidth = 1
self.viewMenuItems.layer.borderColor = UIColor.white.cgColor
}
Swift 5.2 , расширение UIView +
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)
Напишите код в своем 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
быстрый 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
Мы можем создать для этого метод. Просто используйте это.
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
groundTrump.layer.borderColor = UIColor.red.cgColor