Я намагаюся встановити спеціальний колір межі 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, щоб зробити те саме.
Вони можуть бути повторно використані, легко змінюються за допомогою Інтерфейсу, і зміни відображаються негайно на Дошці розкадрувань
Зіставте об'єкти в дошці розкад відповідно до конкретного класу
Фрагмент коду:
@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
все працює добре, тому митниці повинні бути способом використання кольорових активів і в режимі темного / світлого. ~ Хтось знає, як цього досягти?
Ви можете написати розширення, щоб використовувати його для всіх 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