Avevo esattamente lo stesso problema, avevo un UITableView in una vista contenitore più piccola e quando ho selezionato un UITextField nella tabellaView si sarebbe automaticamente spostato su una posizione indesiderata. Questo è il comportamento predefinito di UITableView e non sembra esserci alcun modo per disattivarlo.
Invece, ho cambiato questo controller subView per essere una sottoclasse di un UIViewController invece di un UITableViewController. vale a dire per la mia TransportViewController.h che controlla un tableView:
@interface TransportViewController : UITableViewController <UITextFieldDelegate>
divennero:
@interface TransportViewController : UIViewController <UITextFieldDelegate, UITableViewDataSource, UITableViewDelegate>
Impostando la classe come classe UIViewController invece, l'scorrimento automatico delle celle della tabella non accadrà.
Ora che non si sottoclasse UITableViewController, ora è necessario impostare manualmente la proprietà "tableView" in modo che punti alla vista tabella appropriata. È possibile collegare questo in IB, che vi darà qualcosa di simile:
@property (strong, nonatomic) IBOutlet UITableView *tableView;
Infine si dovrà anche impostare questa proprietà tableView appena assegnato ad essere il delegato e dati di origine della tabella. È possibile farlo nel metodo 'viewDidLoad' in questo modo:
- (void)viewDidLoad
{
[super viewDidLoad];
_tableView.dataSource = self;
_tableView.delegate = self;
}
Questo fermerà lo scorrimento automatico che è insita nella UITableViewController quando viene selezionato un UITextField. Spetta quindi a te implementare tutti i metodi UITableViewDataSource necessari e gestire i tuoi metodi di scorrimento automatico.
un'occhiata a questa domanda http://stackoverflow.com/questions/4585718/disable-uiscrollview-scrolling-when-uitextfield-becomes-first-responder –
I' Non sono sicuro che sia perché è un UITableView, piuttosto che un UIScrollView diretto, o perché quelle soluzioni sono state proposte con un SDK più vecchio, ma nessuna delle soluzioni proposte in quel post ha funzionato per me. Con ogni soluzione, il mio TableView continuava a scorrere automaticamente. –
[Questa risposta] (http://stackoverflow.com/a/32313035/4482870) (mia) descrive una soluzione piuttosto semplice per il problema. – tonso