दिलचस्प पोस्ट
पायप्शन में प्लॉटिंग टाइम में मेटप्ललिब के साथ दूसरे के बाद एक को निष्पादित करने के लिए मैं 3 कार्यों को कैसे कॉल करूँ? एकाधिक EditTexts के लिए एकल टेक्स्टवॉटर का उपयोग कैसे करें? मैं कैसे जांच करूं कि क्या कोई अंतर दो संख्याओं के बीच है? Google Chrome में इनलाइन जावास्क्रिप्ट में ब्रेकपॉइंट कैसे सेट करें? लॉगवर के बाद मूल स्थान पर लौरेगा लौरेगा ASP.NET MVC रेजर @ हेल्पर फ़ंक्शन को एक सहायक वर्ग की विधि में परिवर्तित करना जावास्क्रिप्ट में एक तारीख स्वरूपण पर दस्तावेज कहां मिल सकता है? मेरे फ़ंक्शन के अंदर इसे संशोधित किए जाने के बाद क्यों मेरे चर अनियंत्रित हैं? – एसिंक्रोनस कोड संदर्भ कास्टिंग और रूपांतरण के बीच अंतर क्या है? प्रत्येक समूह की पहली पंक्ति का चयन कैसे करें? SQL सर्वर में एक महीने में दिनों की संख्या निर्धारित करने के लिए कैसे? माउसओवर और माउसटेन्टर्स इवेंट्स में अंतर क्या है? कौन सा ओपन सोर्स लाइसेंस एप्पल के आईफ़ोन और उसके आधिकारिक ऐप स्टोर के साथ संगत हैं? कैसे पृष्ठ लोड के बाद jQuery के माध्यम से गतिशील रूप से एक <स्क्रिप्ट> टैग डालें?

कैसे शैली UITextview गोल राइट पाठ क्षेत्र की तरह करने के लिए?

मैं एक टिप्पणी संगीतकार के रूप में एक पाठ दृश्य का उपयोग कर रहा हूँ।

गुण निरीक्षक में मुझे सीमा शैली की संपत्ति की तरह कुछ भी नहीं मिल रहा है, ताकि मैं एक राउंड रीक का उपयोग कर सकूं, कुछ ऐसा UITextField

तो, सवाल यह है कि: मैं एक UITextView को एक गोल UITextField साथ UITextField तरह कैसे शैली कर सकता हूं?

वेब के समाधान से एकत्रित समाधान "कैसे शैली UITextview गोल राइट पाठ क्षेत्र की तरह करने के लिए?"

इसमें कोई अंतर्निहित शैली नहीं है जिसे आप चुनना है, इसमें QuartzCore फ्रेमवर्क का उपयोग करके कोड का एक छोटा लेखन शामिल है:

 //first, you #import <QuartzCore/QuartzCore.h> //..... //Here I add a UITextView in code, it will work if it's added in IB too UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 220, 200, 100)]; //To make the border look very close to a UITextField [textView.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]]; [textView.layer setBorderWidth:2.0]; //The rounded corner part, where you specify your view's corner radius: textView.layer.cornerRadius = 5; textView.clipsToBounds = YES; 

यह केवल ओएस 3.0 और इसके बाद के संस्करण पर काम करता है, लेकिन मुझे लगता है कि यह वास्तव में वास्तविक मंच है।

यह कोड मेरे लिए अच्छी तरह से काम किया:

  [yourTextView.layer setBackgroundColor: [[UIColor whiteColor] CGColor]]; [yourTextView.layer setBorderColor: [[UIColor grayColor] CGColor]]; [yourTextView.layer setBorderWidth: 1.0]; [yourTextView.layer setCornerRadius:8.0f]; [yourTextView.layer setMasksToBounds:YES]; 

संपादित करें: आपको आयात करना होगा

 #import <QuartzCore/QuartzCore.h> 

कोने त्रिज्या का उपयोग करने के लिए

इसे आज़माएं यह सुनिश्चित करने के लिए काम करेगा

 UITextView* txtView = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, 300, 100)]; txtView.layer.cornerRadius = 5.0; txtView.clipsToBounds = YES; 

जैसा कि रोब ने यह निर्धारित किया था कि यदि आप सीमा रंग चाहते हैं तो UITextField समान हो, तो आपको सीमा रेखा की चौड़ाई 2.0 और रंग को ग्रे करने के लिए निम्न पंक्ति जोड़कर बदलना होगा

 [textView.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]]; [textView.layer setBorderWidth:2.0]; 

स्विफ्ट 3 संस्करण

इंटरफेस बिल्डर में पाठ दृश्य सेट करने के बाद

 @IBOutlet weak var textView: UITextView! override func viewDidLoad() { super.viewDidLoad() textView.layer.cornerRadius = 5 textView.layer.borderColor = UIColor.gray.withAlphaComponent(0.5).cgColor textView.layer.borderWidth = 0.5 textView.clipsToBounds = true } 

स्विफ्ट 2.2 संस्करण

 @IBOutlet weak var textView: UITextView! override func viewDidLoad() { super.viewDidLoad() textView.layer.cornerRadius = 5 textView.layer.borderColor = UIColor.grayColor().colorWithAlphaComponent(0.5).CGColor textView.layer.borderWidth = 0.5 textView.clipsToBounds = true } 

मैं असली सौदा चाहता था, इसलिए मैं 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]; 

इन छवियों मैं उपयोग कर रहे हैं:

यहां छवि विवरण दर्ज करेंयहां छवि विवरण दर्ज करें

एक समाधान UITextView के नीचे एक UITextField जोड़ना है , UITextView पृष्ठभूमि को पारदर्शी बनाएं और UITextField पर किसी भी उपयोगकर्ता इंटरैक्शन को अक्षम करें। फिर कोड में UITextField फ़्रेम को ऐसे कुछ के साथ बदल दिया जाता है

 self.textField.frame = CGRectInset(self.textView.frame, 0, -2); 

आपके पास टेक्स्ट फ़ील्ड के समान एक जैसा दिखना होगा।

और जैसा कि जॉन द्वारा सुझाव दिया गया है, आपको iOS 5.0+ पर [UIViewController viewDidLayoutSubviews] के अंदर कोड का यह टुकड़ा डाल देना चाहिए।

सर्वश्रेष्ठ प्रभाव के लिए आपको एक कस्टम (लचीला) पृष्ठभूमि छवि का उपयोग करना होगा। यह भी है कि UITextField की गोल सीमा खींचा गई है।

एक तरह से मुझे प्रोग्रामिंग के बिना ऐसा करना पड़ता है, टेक्स्टफ़ाइल की पृष्ठभूमि को पारदर्शी बनाने के लिए, इसके पीछे एक राउंड रीट बटन डाल दिया जाए इसे अक्षम करने के लिए बटन सेटिंग्स को बदलना सुनिश्चित करें और Disable adjusts image चेकबॉक्स Disable adjusts image

आप DCKit नामक मेरी लाइब्रेरी को देख सकते हैं।

आप सीधे Interface Builder से एक गोलाकार कोने पाठ दृश्य (साथ ही पाठ फ़ील्ड / बटन / सादे UIView ) बनाने में सक्षम होंगे:

DCKit: सीमावर्ती UITextView

इसके पास कई अन्य उपयोगी विशेषताओं भी हैं, जैसे सत्यापन के साथ पाठ क्षेत्रों, सीमाओं के साथ नियंत्रण, धराशायी सीमाएं, सर्कल और हेयरलाइन दृश्य आदि।

एक तरह से मुझे प्रोग्रामिंग के बिना ऐसा करना पड़ता है, टेक्स्टफ़ाइल की पृष्ठभूमि को पारदर्शी बनाने के लिए, इसके पीछे एक राउंड रीट बटन डाल दिया जाए इसे अक्षम करने के लिए बटन सेटिंग्स को बदलना सुनिश्चित करें और अक्षम करें छवि चेकबॉक्स समायोजित करें।

क्वार्ट्ज़कोर कोड की कोशिश की और पाया कि यह मेरे पुराने 3 जी (मैं परीक्षण के लिए उपयोग) पर अंतराल का कारण पाया। एक बड़ा मुद्दा नहीं है, लेकिन अगर आप अलग-अलग आईओएस और हार्डवेयर के लिए जितना संभव हो सके, मैं ऊपर एंड्रयू एलएल के उत्तर की सिफारिश करता हूं – या अपनी स्वयं की छवियां बनाएं और तदनुसार आवेदन करें।

आईफोन के संदेश एप में टेक्स्ट मैसेज भेजने के लिए इस्तेमाल की जाने वाली UITextView समान एक शानदार पृष्ठभूमि छवि है। इसे प्राप्त करने और संशोधित करने के लिए आपको एडोब इलस्ट्रेटर की आवश्यकता होगी। iphone यूआई वेक्टर तत्वों

 #import <QuartzCore/QuartzCore.h> - (void)viewDidLoad{ UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 220, 200, 100)]; textView.layer.cornerRadius = 5; textView.clipsToBounds = YES; [textView.layer setBackgroundColor: [[UIColor whiteColor] CGColor]]; [textView.layer setBorderColor: [[UIColor grayColor] CGColor]]; [textView.layer setBorderWidth: 1.0]; [textView.layer setCornerRadius:8.0f]; [textView.layer setMasksToBounds:YES]; [self.view addSubView:textview]; } 

मुझे पता है कि इस एक के पहले से बहुत सारे उत्तर हैं, लेकिन मुझे उनमें से कोई भी पर्याप्त नहीं मिला (कम से कम स्विफ्ट में) मुझे एक ऐसे समाधान की ज़रूरत थी जो यूआईटीईएफ़फ़िल्ड के रूप में एक ही सटीक सीमा प्रदान की थी (एक अनुमानित एक ऐसा नहीं जिस तरह दिखता है जैसे कि यह अभी दिखता है, लेकिन ऐसा लगता है कि वह बिल्कुल ठीक दिखता है और हमेशा इस तरह दिखता है)। मुझे UITextField को पृष्ठभूमि के लिए UITextView वापस करने के लिए उपयोग करने की आवश्यकता है, लेकिन वह प्रत्येक बार अलग-अलग बनाने के लिए नहीं चाहता था

नीचे दिए गए समाधान एक UITextView है जो सीमा के लिए अपनी स्वयं की UITextField प्रदान करता है यह मेरे पूर्ण समाधान (जो कि "प्लेसहोल्डर" का समर्थन समान रूप में UITextView को जोड़ता है) का एक छोटा संस्करण है और यहां यहां पोस्ट किया गया था: https://stackoverflow.com/a/36561236/1227119

 // This class implements a UITextView that has a UITextField behind it, where the // UITextField provides the border. // class TextView : UITextView, UITextViewDelegate { var textField = TextField(); required init?(coder: NSCoder) { fatalError("This class doesn't support NSCoding.") } override init(frame: CGRect, textContainer: NSTextContainer?) { super.init(frame: frame, textContainer: textContainer); self.delegate = self; // Create a background TextField with clear (invisible) text and disabled self.textField.borderStyle = UITextBorderStyle.RoundedRect; self.textField.textColor = UIColor.clearColor(); self.textField.userInteractionEnabled = false; self.addSubview(textField); self.sendSubviewToBack(textField); } convenience init() { self.init(frame: CGRectZero, textContainer: nil) } override func layoutSubviews() { super.layoutSubviews() // Do not scroll the background textView self.textField.frame = CGRectMake(0, self.contentOffset.y, self.frame.width, self.frame.height); } // UITextViewDelegate - Note: If you replace delegate, your delegate must call this func scrollViewDidScroll(scrollView: UIScrollView) { // Do not scroll the background textView self.textField.frame = CGRectMake(0, self.contentOffset.y, self.frame.width, self.frame.height); } } 

आप पाठ फ़ील्ड बना सकते हैं जो पाठ दृश्य के शीर्ष पर किसी भी ईवेंट को इस प्रकार स्वीकार नहीं करता है:

 CGRect frameRect = descriptionTextField.frame; frameRect.size.height = 50; descriptionTextField.frame = frameRect; descriptionTextView.frame = frameRect; descriptionTextField.backgroundColor = [UIColor clearColor]; descriptionTextField.enabled = NO; descriptionTextView.layer.cornerRadius = 5; descriptionTextView.clipsToBounds = YES; 

यदि आप अपना नियंत्रक कोड साफ रखना चाहते हैं, तो आप नीचे की तरह UITextView subclass कर सकते हैं, और इंटरफ़ेस बिल्डर में वर्ग नाम बदल सकते हैं।

RoundTextView.h

 #import <UIKit/UIKit.h> @interface RoundTextView : UITextView @end 

RoundTextView.m

 #import "RoundTextView.h" #import <QuartzCore/QuartzCore.h> @implementation RoundTextView -(id) initWithCoder:(NSCoder *)aDecoder { if (self = [super initWithCoder:aDecoder]) { [self.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.333] CGColor]]; [self.layer setBorderWidth:1.0]; self.layer.cornerRadius = 5; self.clipsToBounds = YES; } return self; } @end 

मुझे नहीं लगता कि यह संभव है। लेकिन आप 1 अनुभाग और 1 खाली सेल के साथ UITableView (समूहीकृत) कर सकते हैं और अपने UITextView लिए इसे कंटेनर के रूप में उपयोग कर सकते हैं।

यह एक पुराना सवाल है, और मुझे इस सवाल का उत्तर भी खोजा गया। लुइवीर्स का जवाब 100% सही है और बाद में रोब ने कुछ कोड जोड़ा। यह उत्कृष्ट है, लेकिन मुझे एक अन्य प्रश्न का एक तीसरा पक्ष मिला, जो मेरे लिए बहुत उपयोगी लगता है UITextView पर UITextField समान दृश्य के लिए मुझे न केवल खोजा गया था, मुझे भी बहुउद्देशीय समर्थन के लिए खोजा गया था ChatInputSample दोनों को संतुष्ट करता है यही वजह है कि मुझे लगता है कि यह तीसरी पार्टी दूसरों के लिए सहायक हो सकती है। टिमूर के लिए धन्यवाद, उन्होंने यहां इस खुले स्रोत का उल्लेख किया।

कैसे बस के बारे में:

 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 20, 280, 32)]; textField.borderStyle = UITextBorderStyleRoundedRect; [self addSubview:textField]; 

आईओएस 7 में यूआईटीफ़ेस्टफिल्ड सीमा पूरी तरह से मैचों में (कम से कम मेरी आँखों में) निम्नलिखित हैं:

 textField.layer.borderColor = [[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]; textField.layer.borderWidth = 0.5; textField.layer.cornerRadius = 5; textField.clipsToBounds = YES; 

कुछ भी विशेष आयात करने की कोई ज़रूरत नहीं है

@विइएर और @ हनुमान डेव के लिए धन्यवाद जिनके उत्तर मुझे लगभग वहां मिलते हैं 🙂