जवाबों:
#import <QuartzCore/QuartzCore.h>
....
// typically inside of the -(void) viewDidLoad method
self.yourUITextView.layer.borderWidth = 5.0f;
self.yourUITextView.layer.borderColor = [[UIColor grayColor] CGColor];
self.myView.layer.borderWidth ...
, लेकिन जैसा कि मैंने कहा, परत केवल पढ़ने के लिए है, इसलिए परत को सेट करने के लिए कोई विधि या चर नहीं है
गोल कोनों के लिए निम्नलिखित जोड़ें:
self.yourUITextview.layer.cornerRadius = 8;
यहाँ मेरे द्वारा उपयोग किया जाने वाला कोड है, TextView
"tbComments" नामक मेरे नियंत्रण के चारों ओर एक सीमा जोड़ने के लिए :
self.tbComments.layer.borderColor = [[UIColor grayColor] CGColor];
self.tbComments.layer.borderWidth = 1.0;
self.tbComments.layer.cornerRadius = 8;
और यहाँ यह कैसा दिखता है:
बहुत आसान।
मैं के UIImageView
एक उप के रूप में जोड़ें UITextView
। यह देशी बॉर्डर से मेल खाता है UITextField
, जिसमें ऊपर से नीचे तक ढाल शामिल है:
textView.backgroundColor = [UIColor clearColor];
UIImageView *borderView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height)];
borderView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
UIImage *textFieldImage = [[UIImage imageNamed:@"TextField.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15, 8, 15, 8)];
borderView.image = textFieldImage;
[textField addSubview: borderView];
[textField sendSubviewToBack: borderView];
ये मेरे द्वारा उपयोग की जाने वाली png छवियां हैं, और एक jpg प्रतिनिधित्व है:
code
resizableImageWithCapInsets: UIEdgeInsetsMake (28, 14, 28, 14)
महान काम करता है, लेकिन रंग एक होना चाहिए CGColor
, नहीं UIColor
:
view.layer.borderWidth = 5.0f;
view.layer.borderColor = [[UIColor grayColor] CGColor];
मेरा मानना है कि उपरोक्त उत्तर स्विफ्ट के पिछले संस्करणों के लिए हैं। मैंने स्विफ्ट 4 के लिए थोड़ा सा और नीचे दिया गया कोड काम किया है। इसे जो भी चाहे लाभ के लिए साझा कर सकता है।
self.textViewName.layer.borderColor = UIColor.lightGray.cgColor
self.textViewName.layer.borderWidth = 1.0
self.textViewName.layer.cornerRadius = 8
हैप्पी कोडिंग!
self.textViewName.layer.borderColor = UIColor.systemGray4.cgColor
स्विफ्ट प्रोग्रामिंग के लिए, इसका उपयोग करें
tv_comment.layer.borderWidth = 2
tv_comment.layer.borderColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1).CGColor
UIColor(white: 0.2, alpha: 1).CGColor
यह एक मूल UITextField से जितना करीब हो सकता है
func updateBodyTextViewUI() {
let borderColor = UIColor.init(red: 212/255, green: 212/255, blue: 212/255, alpha: 0.5)
self.bodyTextView.layer.borderColor = borderColor.CGColor
self.bodyTextView.layer.borderWidth = 0.8
self.bodyTextView.layer.cornerRadius = 5
}
आप स्टोरीबोर्ड - पहचान निरीक्षक - उपयोगकर्ता परिभाषित रनटाइम विशेषता से UITextView में सीमा जोड़ सकते हैं
IOS 8 और Xcode 6 के रूप में, मुझे अब सबसे अच्छा समाधान UITextView को उप-वर्ग में लाना है और उप-वर्ग को IB_DESIGNABLE के रूप में चिह्नित करना है, जो आपको स्टोरीबोर्ड में सीमा को देखने की अनुमति देगा।
हैडर:
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface BorderTextView : UITextView
@end
कार्यान्वयन:
#import "BorderTextView.h"
@implementation BorderTextView
- (void)drawRect:(CGRect)rect
{
self.layer.borderWidth = 1.0;
self.layer.borderColor = [UIColor blackColor].CGColor;
self.layer.cornerRadius = 5.0f;
}
@end
इसके बाद बस स्टोरीबोर्ड में अपना UITextView खींचें और BorderTextView में अपनी कक्षा निर्धारित करें
जिस चीज़ ने इसे काम किया है (यहाँ उत्तरों का पालन करने के अलावा) वह borderStyle
विशेषता जोड़ रहा है:
#import <QuartzCore/QuartzCore.h>
..
phoneTextField.layer.borderWidth = 1.0f;
phoneTextField.layer.borderColor = [[UIColor blueColor] CGColor];
phoneTextField.borderStyle = UITextBorderStyleNone;
स्विफ्ट 3 में, आप निम्नलिखित दो लाइनों का उपयोग कर सकते हैं:
myText.layer.borderColor = UIColor.lightGray.cgColor
myText.layer.borderWidth = 1.0
मैंने इस समस्या को स्टोरीबोर्ड में पूरी तरह से अक्षम UIButton
करके UITextView
और UITextView
स्पष्ट रंग की पृष्ठभूमि का रंग डालकर हल किया। यह अतिरिक्त कोड या पैकेज की आवश्यकता के बिना काम करता है।