Miałem dokładnie ten sam problem, miałem UITableView w mniejszym widoku kontenera i kiedy wybrałem UITextField w tableView to automatycznie przewinąłoby się do niepożądanej pozycji. Jest to domyślne zachowanie UITableView i wydaje się, że nie ma sposobu na jego wyłączenie.
Zamiast tego zmieniłem ten kontroler subView, aby był podklasą UIViewController zamiast UITableViewController. tj dla mojego TransportViewController.h który kontroluje tableview:
@interface TransportViewController : UITableViewController <UITextFieldDelegate>
stała:
@interface TransportViewController : UIViewController <UITextFieldDelegate, UITableViewDataSource, UITableViewDelegate>
Ustalając klasę jako klasę UIViewController zamiast automatycznego przewijania komórek tabeli nie stanie.
Teraz, gdy nie podklasy UITableViewController, musisz teraz ręcznie ustawić właściwość 'tableView', aby wskazywała odpowiedni widok tabeli. Można połączyć to w IB, który daje coś takiego:
@property (strong, nonatomic) IBOutlet UITableView *tableView;
Wreszcie trzeba będzie również ustawić tę właściwość nowo przypisany Tableview być źródłem delegat i dane z tabeli. Można to zrobić w „viewDidLoad” metody tak:
- (void)viewDidLoad
{
[super viewDidLoad];
_tableView.dataSource = self;
_tableView.delegate = self;
}
To zatrzyma automatyczne przewijanie, który jest nieodłączną częścią UITableViewController kiedy wybrany jest UITextField. Od Ciebie zależy wdrożenie odpowiednich metod UITableViewDataSource i obsługiwanie własnych metod automatycznego przewijania.
spojrzenie na to pytanie http://stackoverflow.com/questions/4585718/disable-uiscrollview-scrolling-when-uitextfield-becomes-first-responder –
I nie jestem pewien, czy to dlatego, że jest to UITableView, a nie prosty UIScrollView, lub dlatego, że rozwiązania te zostały zaproponowane pod starszym SDK, ale żadne z proponowanych rozwiązań w tym poście nie działało dla mnie. Przy każdym rozwiązaniu mój TableView wciąż przewijany jest automatycznie. –
[Ta odpowiedź] (http://stackoverflow.com/a/32313035/4482870) (moja) opisuje raczej proste rozwiązanie problemu. – tonso