Tôi muốn thực hiện một số loại làm mới của UITextView để đặt chế độ xem văn bản trở về trạng thái ban đầu của nó. Tôi có một đoạn được điền động tùy thuộc vào TableViewCell mà người dùng nhấp vào. Vì vậy, khi họ cuộn trường văn bản, sau đó quay lại và chọn ô khác và quay lại, văn bản thay đổi, nhưng vị trí cuộn vẫn giữ nguyên khi người dùng rời khỏi nó. Làm thế nào tôi có thể trả về trạng thái mặc định của nó. Cảm ơn!Làm mới vị trí cuộn của UITextView trên iPhone
Trả lời
Theo trạng thái mặc định, bạn có muốn cuộn lên đầu không? Nếu vậy, bạn đang đi đúng hướng. Hãy thử
[myTextView scrollRangeToVisible:NSMakeRange(0, 0)];
Tôi cũng đã thử nó, nhưng nó dường như không đi đến phần đầu của văn bản. Nó chỉ nhận được gần đầu, nhưng không giống như mặc định. Thành thật mà nói, tôi không thực sự hiểu rõ về công cụ của NSRange. –
Tôi vừa thử với một ứng dụng tôi có, và nó hoạt động cho tôi. Bạn có thể đăng ảnh chụp màn hình của trình mô phỏng để chúng tôi có thể xem hành vi không? –
Dưới đây là một số screencaps: INITIAL, SCROLLED DOWN MANUALLY, & RELOADED http://www.angelfilm.net/external/stackoverflow/mos/ –
Tôi thấy rằng nếu tôi xóa UITextView trước và sau đó áp dụng văn bản mới, nó sẽ tự động "cuộn" trở lại trên cùng.
myTextView.text = @"";
myTextView.text = theRealTextContent;
Không một phương pháp nào trong số này phù hợp với tôi.
scrollRangeToVisible sản xuất tấn hiện vật trực quan (nhiều di chuyển khi chuyển đổi giữa các chuỗi lớn), và trong thực tế chỉ hoạt động ở tất cả trong một cuộc gọi chậm một thời gian (tôi đã sử dụng 0,1 giây) sau khi các nội dung đã được thay đổi, không trực tiếp như câu trả lời của Shaggy Frog ngụ ý.
đặt văn bản thành @ "" trước khi đặt nội dung mới không có tác dụng, ngay cả khi trì hoãn.
Dường như nếu một lần UITextView đã được nhập vào, nó sẽ mãi mãi ở chế độ này, nơi đặt nội dung mới gây ra hiện tượng cuộn gây phiền nhiễu. Tôi đã thử thiết lập selectionRange cho phần đầu của UITextView, nhưng điều đó không giúp được gì. Gửi tin nhắn resignFirstResponder trước khi thiết lập các nội dung mới cũng không giúp được gì.
Vì lý do này, tôi quyết định xóa và tạo lại UITextView mỗi khi tôi thay đổi nội dung. Đó là một sự kiện đủ hiếm (dựa trên tương tác của con người) trong ứng dụng của tôi rằng nó không phải là một vấn đề hiệu suất. Đó là cách duy nhất tôi có thể tìm thấy để "tải nội dung mới" vào UITextView mà không cần tấn các đồ tạo tác cuộn gây phiền nhiễu.
Kinh nghiệm của tôi là với OS3.2 (ipad simulator)
[textview setScrollEnabled:YES];
textview.text = yourText;
[textview setScrollEnabled:NO];
Tôi thực sự muốn dừng textView khỏi cuộn khi cập nhật nội dung , vì vậy tôi chỉ làm theo cách khác và nó hoạt động hoàn hảo. Cảm ơn bạn. – soemarko
tôi quản lý để có được kết quả mong muốn - buộc UITextView để 'cuộn' lên đỉnh nội dung của nó khi chỉnh sửa kết thúc. Nhưng để đạt được nó, tôi đã có cả hai di chuyển vô hiệu hóa trong textViewDidEndEditing VÀ CSONG thiết lập lại văn bản trong cùng một phương pháp.
Tôi bật lại cuộn trong textViewDidBeginChỉnh sửa.
- (void) textViewDidEndEditing: textView;
{
[textView setScrollEnabled: NO];
NSString* savedText = [textView text];
[textView setText:@""];
[textView setText: savedText];
}
này hoạt động nếu bạn muốn nó di chuyển lên đến đỉnh:
[theTextView scrollRangeToVisible:NSMakeRange(0, 0)];
Vấn đề duy nhất là điều này làm sinh động theo cách của mình lên. Nếu bạn muốn nó chụp ở trên cùng, hãy sử dụng điều này:
[theTextView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
Giải pháp này phù hợp với tôi. Tôi đã tải văn bản trong viewDidLoad, đã thay đổi ContentInset của UITextView và sau đó phải sử dụng scrollRectToVisible để có được đầu để căn chỉnh đúng cách. Cảm ơn – TMilligan
Điều cuối cùng cũng giúp tôi xóa nội dung văn bản và đặt văn bản mong muốn trên vòng chạy tiếp theo.
// clear the text view
self.textView.text = ""
// set the text on the next run loop
dispatch_async(dispatch_get_main_queue()) {
self.textView.text = someText
}
- 1. Nhận vị trí con trỏ trong UITextView trên iPhone?
- 2. Vị trí con trỏ đến cuối văn bản trong uitextview và cuộn đến vị trí
- 3. Nút vị trí trên iPhone
- 4. cách đặt vị trí cuộn trên uiwebview
- 5. Đặt vị trí cuộn
- 6. vị trí lạ của thanh cuộn iScroll
- 7. Cursor vị trí trong một UITextView
- 8. Lấy vị trí cuộn hiện trong Chrome sử dụng scrollTop() trên tải trang/làm mới
- 9. iPhone Tự động cuộn UITextView nhưng cho phép cuộn thủ công cũng
- 10. Cách đặt vị trí con trỏ trong UITextView
- 11. Độ mờ Div dựa trên vị trí thanh cuộn
- 12. API vị trí địa lý trên iPhone
- 13. Vị trí mới dựa trên mẫu sizeof()
- 14. Làm cách nào để đặt vị trí cuộn của UIScrollView?
- 15. Làm thế nào để nhớ vị trí cuộn của trang
- 16. Chrome nhớ vị trí cuộn
- 17. WinForms ListView, Nhớ vị trí cuộn trên Tải lại
- 18. Đặt vị trí thanh cuộn
- 19. Làm cách nào để giám sát vị trí cuộn trong khi cuộn trong Safari trên iOS?
- 20. Cuộn UITableView đến vị trí cụ thể
- 21. Vị trí cuộn trang lực lên đầu trang làm mới trang trong HTML
- 22. làm thế nào để chèn văn bản tại bất kỳ vị trí con trỏ trong uitextview?
- 23. Đặt cuộn uitextview theo lập trình
- 24. C#: Đồng bộ hóa vị trí cuộn của hai RichTextBoxes?
- 25. Cách đặt vị trí cuộn lên trên cùng của chế độ xem danh sách
- 26. WPF DataGrid - duy trì vị trí cuộn sau khi làm mới
- 27. Đặt vị trí con trỏ UITextView ở cuối văn bản
- 28. CListCtrl: Cách duy trì vị trí cuộn?
- 29. Cách đặt lại vị trí cuộn của UITableView?
- 30. iframe cuộn trên iphone
Là một lưu ý, tôi đã cố gắng để sử dụng [myTextView scrollRangeToVisible: NSMakeRange ([myTextView.text dài], 0)]; –