मेरा देर उत्तर डेवलपर के लिए है, जो कुंजीपटल दिखाए जाने पर पाद लेख दिखाने की आवश्यकता है। सही समाधान contentInset संपत्ति (जो कीबोर्ड दिखाया गया है के बाद बदला जा सकता है) पर विचार करना है, तो यह सुपर आसान है:
- (void)scrollToFooter {
UIEdgeInsets tableInsets = self.tableView.contentInset;
CGFloat tableHeight = self.tableView.frame.size.height - tableInsets.bottom - tableInsets.top;
CGFloat bottom = CGRectGetMaxY(self.tableView.tableFooterView.frame);
CGFloat offset = bottom - tableHeight;
if(offset > 0.f) {
[self.tableView setContentOffset:CGPointMake(0, offset) animated:YES];
}
}
मैं नोटिस होगा, कि मेरे मामले में tableView मेरे अपने ViewController और में से एक के लिए जोड़ा गया कोशिकाओं में UITextField है जो पहले उत्तरदाता बन जाते हैं। कुंजीपटल दिखाए जाने पर शो फ़ूटर को स्थानांतरित करने के लिए आपको कुंजीपटल पंजीकृत करने की आवश्यकता होती है, अधिसूचना दिखाती है और (आईओएस 7 पर) इस विधि को वर्तमान रन लूप के अंत में निष्पादित करती है, इस मामले में coz आईओएस 7 स्वचालित रूप से स्क्रॉल करने के लिए scrollToRowAtIndexPath निष्पादित करता है और पाद लेख नहीं दिखाया जाएगा।
-(void)registerKeyboardNotification {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardDidShown:)
name:UIKeyboardDidShowNotification object:nil];
}
- (void)keyboardDidShown:(id)notification {
//move to the end of run loop
[self performSelector:@selector(scrollToFooter) withObject:nil afterDelay:.0];
}
में मेरे लिए काम करता आप रेंज त्रुटि के बाहर निकलना :(मुझे यह उल्लेख करना चाहिए था कि मैंने पहले से ही मूल पोस्ट में कोशिश की है। – Kevin