2014-06-27 12 views
5

आईओएस 7 के लिए एक्सकोड 5.1.1 का उपयोग कर Im। चूंकि UITextView में प्रवेश करने वाला नया टेक्स्ट है, तो मुझे यह अच्छा लगेगा कि पाठ बढ़ गया है, उपयोगकर्ता को नया टेक्स्ट देखने के लिए जगह छोड़कर। मेरे पास ऐसा कुछ है जो काम करता है लेकिन एनीमेशन जो नया टेक्स्ट दिखाता है वह अजीब है। यह लगभग जैसे कि यह पाठ के बहुत ऊपर से जाता है और हर बार इसे बुलाया जाता है।चिकनी UITextView फ्रेम के नीचे ऑटो स्क्रॉल देखें

CGPoint p = [textview contentOffset]; [textview setContentOffset:p animated:NO]; [textview scrollRangeToVisible:NSMakeRange([textview.text length] - 1,0)];

इस कोड को हर बार नया पाठ दर्ज किया गया है कहा जाता हो रही है। मैं इसे डिफ़ॉल्ट आईफोन मैसेंजर के रूप में चिकनी होना चाहता हूं जहां यह सिर्फ आकस्मिक रूप से स्लाइड करता है।

+2

मैं वें लगता है अपने स्वयं के सवालों के जवाब देने के लिए पसंदीदा तरीका है अपने उत्तर को _Your Answer_ फ़ॉर्म में प्रश्न से अलग करना है। फिर अपना जवाब स्वीकार करें। और यह आपको अंक भी मिल जाता है! – Jeff

उत्तर

10

सही जवाब कॉल स्थापित करने के लिए है दर्ज किया गया था:

_consoleView.layoutManager.allowsNonContiguousLayout = NO; 

viewDidLoad में

तब:

_consoleView.text = text; 
[_consoleView scrollRangeToVisible:NSMakeRange(_consoleView.text.length - 1, 1)]; 
+0

धन्यवाद - एकमात्र उत्तर जो स्टैक ओवरफ़्लो में चिकनी काम करता है। –

+0

स्विफ्ट 3 'self.yourTextField.scrollRangeToVisible (NSMakeRange (self.yourTextField.text.count - 1,0))' ठीक काम करना चाहिए – efwjames

3

(एक सवाल संपादित करें द्वारा उत्तर दिया एक समुदाय विकी जवाब देने के लिए परिवर्तित Question with no answers, but issue solved in the comments (or extended in chat) देखें।।)

ओपी ने लिखा है:

समाधान: समस्या यह थी कि जब पाठ texview में डाला जा रहा था यह शीर्ष पर स्क्रॉल किया गया, फिर scrollRangeToVisible कहा जाता है जो इसे नीचे स्क्रॉल करता है, जिसने एक खराब एनीमेशन और अप्रिय उपयोगकर्ता अनुभव दिया। मैं स्क्रॉल अक्षम करने से पहले टेक्स्ट दर्ज करके इस हल, और यह सक्षम के बाद पाठ तो यह केवल scrollRangeToVisible

[textview scrollRangeToVisible:textview.selectedRange]; 
textview.scrollEnabled= NO; 
textview.text = [textview.text stringByAppendingString:createdString]; 
textview.scrollEnabled= YES; 
+0

यह मेरे लिए काम नहीं किया। – bedouger

संबंधित मुद्दे