2012-04-24 43 views
6

Tôi có UIWebView trình bày một trang chứa các trường nhập().Ngăn UIWebView di chuyển khi bàn phím xuất hiện

Khi người dùng chạm vào trường để nhập dữ liệu, UIWebView được cuộn lên và sang trái để làm cho trường hiển thị cho người dùng. Tốt.

Tôi không quan tâm nó được cuộn lên (vì mọi thứ bên dưới biểu mẫu của tôi bị ẩn bởi bàn phím) nhưng tôi muốn ngăn chế độ xem bị cuộn sang trái.

Có cách nào (tiêu đề trong trang html hoặc mã iOS) để ngăn chặn hành vi này không?

Cảm ơn

Trả lời

0

Trước tiên, bạn sẽ phải chụp màn hình Bàn phím bằng cách sử dụng UIKeyboardWillShowNotification.

Sau đó, hạn chế nội dungKích thước rộng của UIScrollView (của UIWebview) thành chiều rộng màn hình sẽ đảm bảo màn hình không cuộn theo chiều ngang.

+3

không làm việc cho tôi – Remover

+0

Tôi đang đối mặt với cùng một vấn đề, khi người dùng chọn hộp nhập, thanh cuộn webview còn lại và tôi có phân trang nên tôi không thể giới hạn chiều rộng thành kích thước màn hình. Bất kỳ ý tưởng làm thế nào tôi có thể ngăn chặn di chuyển trái? – coder

+0

bạn đã thử vô hiệu hóa cuộn ('aScrollView.scrollEnabled = NO') khi Bàn phím được BẬT. ? – Roshit

1

Tôi không biết làm thế nào để ngăn chặn sự di chuyển hoàn toàn, nhưng nếu bạn không nhớ một chút jitter, bạn có thể thêm xử lý này đến lĩnh vực đầu vào:

onfocus="setTimeout('window.scroll(0,0)',100)" 
0

không đẹp nhưng hiệu quả:

Nếu bạn không muốn WebView của bạn để di chuyển ở tất cả, bạn có thể thực hiện UIScrollViewDelegate của UIWebView và thiết lập contentOffset đến 0 trên scrollViewDidScroll

aWebView.scrollView.delegate = self 

func scrollViewDidScroll(scrollView: UIScrollView) { 
    scrollView.contentOffset = CGPointMake(0, 0) 
} 
+0

Trong giải pháp của bạn, 'webView.scrollView.isScrollEnabled = false' sẽ đủ để tránh sử dụng ủy nhiệm cho điều đó. Mặc dù, không chắc chắn câu trả lời này hoàn toàn bao gồm câu hỏi. – Ben

Các vấn đề liên quan