'dan biraz daha büyük olan self.view
'dan daha büyük. Görünümün altında bir UITextField
var ve metin alanı düzenlemeye başladığında görünümü yukarı taşımak için delegate yöntemini – textFieldDidBeginEditing:
kullanıyorum.UITableView contentOffset'i ayarladıktan sonra sürükleyin, ofset atlamalarını yeni konuma getirin
Bu, iyi çalışır, ancak UITextField
düzenlenirken (ve içeriğin zaten kaydırıldığı) görünümü kaydırmaya çalışırsam, içerik görünüm için en alttaki 'uygun' konuma geçer. Başka bir deyişle, contentOffset.y
I ayarının içerik görünümünün boyutuna eşit olacak şekilde değiştirilmesi (normal davranış için beklediğiniz gibi).
Düzenleme yaparken bu davranışı nasıl aşacağınız hakkında herhangi bir fikrin var mı?
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
// Scroll to the currently editing text field
[self scrollViewToTextField:textField];
}
- (void)scrollViewToTextField:(id)textField
{
// Set the current _scrollOffset, so we can return the user after editing
_scrollOffsetY = self.tableView.contentOffset.y;
// Get a pointer to the text field's cell
UITableViewCell *theTextFieldCell = (UITableViewCell *)[textField superview];
// Get the text fields location
CGPoint point = [theTextFieldCell convertPoint:theTextFieldCell.frame.origin toView:self.tableView];
// Scroll to cell
[self.tableView setContentOffset:CGPointMake(0, point.y - 12) animated: YES];
}