मैं स्विफ्ट में यूएवीवाई के कस्टम बॉर्डर कलर को प्रोग्रामेटिक रूप से सेट करने की कोशिश कर रहा हूं।
मैं स्विफ्ट में यूएवीवाई के कस्टम बॉर्डर कलर को प्रोग्रामेटिक रूप से सेट करने की कोशिश कर रहा हूं।
जवाबों:
यदि आप 2.0+ स्विफ्ट का उपयोग करते हैं
self.yourView.layer.borderWidth = 1
self.yourView.layer.borderColor = UIColor(red:222/255, green:225/255, blue:227/255, alpha: 1).cgColor
में स्विफ्ट 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
<स्विफ्ट 4 , आप नीचे दिए गए कोड का उपयोग करके यूआईवीवाई की सीमा की चौड़ाई और सीमा का रंग निर्धारित कर सकते हैं।
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()
}
}
इंटरफ़ेस बिल्डर से आसान संशोधन की अनुमति देता है:
@IBDesignable
और @IBInspectable
सभी अच्छी तरह से काम करते हैं, इसलिए दोनों डार्क / लाइट मोड के साथ कलर एसेट्स का उपयोग करने के लिए रीति-रिवाजों का एक तरीका होना चाहिए ~ कोई भी जानता है कि इसे कैसे प्राप्त किया जा सकता है?
आप इसका उपयोग करने के लिए एक एक्सटेंशन लिख सकते हैं, जैसे कि सभी उविविओं के साथ। 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
}
स्विफ्ट 5.2 , उविवि + एक्सटेंशन
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
}
स्विफ्ट 3.0
groundTrump.layer.borderColor = UIColor.red.cgColor