我有這個完全相同的問題,我不得不在較小的容器視圖一個UITableView,當我在的tableView選擇的UITextField它會自動滾動到不期望的位置。這是UITableView的默認行爲,似乎沒有任何方法將其關閉。
相反,我改變了這種子視圖控制器是一個UIViewController的一個子類,而不是一個UITableViewController。即我TransportViewController.h其控制的tableView:
@interface TransportViewController : UITableViewController <UITextFieldDelegate>
變成了:
@interface TransportViewController : UIViewController <UITextFieldDelegate, UITableViewDataSource, UITableViewDelegate>
通過設置類作爲UIViewController類代替,表格單元格自動滾動將不會發生。
現在,你是不是子類的UITableViewController現在必須手動設置「的tableView」屬性設置爲指向相應的表視圖。您可以在IB連接此,這將給你是這樣的:
@property (strong, nonatomic) IBOutlet UITableView *tableView;
最後你還必須設置這個新分配的tableView屬性是表的委託和數據源。您可以在「viewDidLoad中」的方法做到這一點,像這樣:
- (void)viewDidLoad
{
[super viewDidLoad];
_tableView.dataSource = self;
_tableView.delegate = self;
}
這將停止自動滾動選擇的UITextField時是在固有的UITableViewController。然後由你來實現任何必要的UITableViewDataSource方法,並處理你自己的自動滾動方法。
來源
2013-10-09 04:41:08
Tys
看看這個問題http://stackoverflow.com/questions/4585718/disable-uiscrollview-scrolling-when-uitextfield-becomes-first-responder – 2013-04-21 14:01:48
我不能肯定是否是因爲它是一個UITableView,而不是直接的UIScrollView,或者是因爲這些解決方案是一個較舊的SDK下提出的,但沒有在該職位中提出的解決方案爲我工作。對於每個解決方案,我的TableView仍然自動滾動。 – 2013-04-21 16:07:23
[本答案](http://stackoverflow.com/a/32313035/4482870)(礦)描述了該問題的相當簡單的解決方案。 – tonso 2015-08-31 14:02:44