iPhone के संदर्भ में की बढ़त अतीत इसकी चौड़ाई बढ़ जाती है UIScrollView स्वचालित रूप से स्क्रॉल। जब उपयोगकर्ता UIImage के अंदर स्क्रीन को टैप करता है, तो उपयोगकर्ता को स्पर्श करने पर UITextField जोड़ा जाता है। उपयोगकर्ता इस UITextField को संपादित कर सकता है, और पाठ फ़ील्ड स्वचालित रूप से आकार बदल जाएगा या नहीं, पाठ को जोड़ा या हटा दिया गया था या नहीं।UIKit:</p> <p>मैं एक UIScrollView एक UIImage युक्त होती है: जब एक subview स्क्रीन
जब एक UITextField संपादित किया जा रहा है इसकी चौड़ाई बढ़ जाती है, तो स्क्रॉलव्यू स्वचालित रूप से बढ़ी हुई चौड़ाई दिखाने के लिए स्क्रॉल करता है।
समस्या क्योंकि पाठ फ़ील्ड का स्वत: स्क्रॉल स्क्रीन
उदाहरण के लिए की y- मान सम्मान नहीं करता है में आता है, कहते हैं कि उपयोगकर्ता छवि के नीचे करने के लिए एक पाठ क्षेत्र गयी। जब वे उस टेक्स्ट फ़ील्ड को संपादित करने के लिए जाते हैं, तो कीबोर्ड फ़ील्ड को छुपाएगा, कीबोर्ड दिखाएगा। मेरे पास टेक्स्ट फ़ील्ड दिखाने के लिए स्क्रीन स्क्रॉल करने के लिए कोड है। समस्या तब आती है जब उपयोगकर्ता इतना टेक्स्ट दर्ज करता है कि वह टेक्स्ट फ़ील्ड स्क्रीन के किनारे से आगे बढ़ता है। जब ऐसा होता है, तो स्क्रीन व्यापक पाठ को फिट करने के लिए क्षैतिज रूप से स्क्रॉल करती है, लेकिन लंबवत भी - वर्टिकल स्क्रॉलिंग टेक्स्टफील्ड को छिपाने के लिए समाप्त होती है, मूल रूप से टेक्स्ट फ़ील्ड दिखाने के लिए मैंने जो कुछ भी किया है उसे रद्द कर दिया।
कोड पाठ क्षेत्र दिखाने के लिए अगर यह कीबोर्ड से छिपा हुआ है:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
CGSize stringSize = [string sizeWithFont:textField.font];
CGSize newSize = [newString sizeWithFont:textField.font];
// Make textField wider if we're close to running up against it
if (newSize.width > (textField.frame.size.width - self.widthOffset)) {
CGRect textFieldFrame = textField.frame;
if (stringSize.width > self.widthOffset) {
textFieldFrame.size.width += stringSize.width;
}
textFieldFrame.size.width += self.widthOffset;
textField.frame = textFieldFrame;
}
// Shrink the textField if there is too much wasted space
if ((textField.frame.size.width - newSize.width) > self.widthOffset) {
CGRect textFieldFrame = textField.frame;
textFieldFrame.size.width = newSize.width + self.widthOffset;
textField.frame = textFieldFrame;
}
return YES;
}
सवाल यह है::
- (void)keyboardWasShown:(NSNotification*)notification
{
NSDictionary* info = [notification userInfo];
CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
self.offset = self.contentOffset;
CGRect frame = self.frame;
// self.activeField is the name of the field that is the current first responder - this just adds a little bit of padding
frame.size.height -= keyboardSize.height + (self.activeField.frame.size.height * 2);
if (!CGRectContainsPoint(frame, self.activeField.frame.origin)) {
CGPoint scrollPoint = CGPointMake(self.offset.x, self.activeField.frame.origin.y - keyboardSize.height + (activeField.frame.size.height * 2));
[self setContentOffset:scrollPoint animated:YES];
}
}
यहाँ पाठ क्षेत्र के आकार को बढ़ाने के लिए कोड है कैसे क्या स्वचालित रूप से स्क्रॉल करते समय मुझे वाई-वैल्यू का सम्मान करने के लिए UIScrollView मिलता है?
बहुत बढ़िया सवाल! – Legolas
यदि आप नमूना प्रोजेक्ट के साथ एक लिंक प्रदान कर सकते हैं तो इससे मदद मिलेगी। –