Tôi đã gặp vấn đề tương tự, tôi đã có UITableView trong chế độ xem vùng chứa nhỏ hơn và khi tôi chọn UITextField trong bảngView nó sẽ tự động cuộn đến vị trí không mong muốn. Đây là hành vi mặc định của UITableView và dường như không có cách nào để tắt nó.
Thay vào đó, tôi đã thay đổi bộ điều khiển subView này thành lớp con của UIViewController thay vì UITableViewController. tức là cho TransportViewController.h tôi kiểm soát một tableView:
@interface TransportViewController : UITableViewController <UITextFieldDelegate>
trở thành:
@interface TransportViewController : UIViewController <UITextFieldDelegate, UITableViewDataSource, UITableViewDelegate>
Bằng cách đặt các lớp như là một lớp UIViewController thay vào đó, cuộn tự động của các tế bào bảng sẽ không xảy ra.
Bây giờ bạn không phải là lớp con UITableViewController, bây giờ bạn phải đặt thuộc tính 'tableView' theo cách thủ công để trỏ đến chế độ xem bảng thích hợp. Bạn có thể kết nối này trong IB mà sẽ cung cấp cho bạn một cái gì đó như:
@property (strong, nonatomic) IBOutlet UITableView *tableView;
Cuối cùng, bạn cũng sẽ phải thiết lập tài sản tableView mới giao này được các đại biểu và nguồn dữ liệu của bảng. Bạn có thể làm điều này trong phương pháp 'viewDidLoad' như vậy:
- (void)viewDidLoad
{
[super viewDidLoad];
_tableView.dataSource = self;
_tableView.delegate = self;
}
Điều này sẽ ngăn chặn sự di chuyển tự động đó là cố hữu trong UITableViewController khi một UITextField được chọn. Sau đó, bạn có thể thực hiện bất kỳ phương thức UITableViewDataSource cần thiết nào và để xử lý các phương thức tự động cuộn của riêng bạn.
nhìn vào câu hỏi này http://stackoverflow.com/questions/4585718/disable-uiscrollview-scrolling-when-uitextfield-becomes-first-responder –
tôi m không chắc chắn nếu đó là bởi vì nó là một UITableView, chứ không phải là một UIScrollView thẳng, hoặc bởi vì những giải pháp đã được đề xuất theo một SDK cũ hơn, nhưng không có giải pháp được đề xuất trong bài đăng đó làm việc cho tôi. Với mỗi giải pháp, TableView của tôi vẫn được cuộn tự động. –
[Câu trả lời này] (http://stackoverflow.com/a/32313035/4482870) (của tôi) mô tả một giải pháp khá đơn giản cho vấn đề. – tonso