2011-10-12 33 views
11

Tôi đang sử dụng UITextView để hiển thị văn bản từ xml .I đã phân tích cú pháp xml và lưu trữ văn bản trong một NSArray và từ đó tôi thêm nó vào một mã số UITextview.UITextView không hiển thị cho đến khi nó được cuộn

vấn đề: Khi tôi chạy mã, chế độ xem văn bản sẽ hiển thị trống hoặc có phần văn bản và khi tôi cố gắng cuộn văn bản, toàn bộ văn bản sẽ được hiển thị.

Tôi đã thêm UITextview vào UIView.

tôi thấy nó lạ và googled nó nhưng không thể tìm thấy nhiều câu trả lời giúp tôi. Ai đó có thể trả lời tôi để giải quyết vấn đề

TNQ

+0

Bạn đã kiểm tra xem UItextView có khung bạn mong đợi (bạn có thể đặt màu nền để kiểm tra trực quan) – jbat100

+0

ya i đảm bảo điều đó. – Dinakar

+0

Tôi cũng phải đối mặt với vấn đề này. Tôi đã giải quyết vấn đề này bằng cách sử dụng giải pháp này. [1]: http://stackoverflow.com/a/11147954/1635315 – iKT

Trả lời

0

UItextView thừa hưởng từ UIScrollView. Điều đó có nghĩa là nó có chức năng cuộn. Do đó, nếu nội dung của UITextView đủ nhỏ để vừa với khung, nó không cần phải cuộn.

Nhưng nếu đủ lớn, bạn cần cuộn UITextView.

Điều này có hợp lý không?

Để biết thêm thông tin, tham khảo các tài liệu tham khảo lớp của UITextView

+0

điều đó đúng, nhưng trường hợp của tôi là uitextView không hiển thị bất kỳ dữ liệu nào trước đó scrolled. Ít nhất nó nên số lượng dữ liệu phù hợp trong textview trước khi nó được scrolled. phải không? – Dinakar

+0

Vâng, đúng vậy. Hãy để tôi tìm kiếm một cái gì đó về điều này ... –

0

Đảm bảo rằng, phương pháp, trong đó u thiết lập văn bản TextView là gọi properly.And chuỗi mà u gán cho xem văn bản là ở định dạng chuỗi thích hợp (nếu không muốn nói nên giữ lại nó).

0

Có các khả năng rằng các khoảng trắng trắng và/hoặc newlines có sẵn trước văn bản thực tế. Cắt các ký tự đó trước khi bạn gán nó cho chế độ xem văn bản.

NSCharacterSet *charset = [NSCharacterSet whitespaceAndNewlineCharacterSet]; 
NSString *text = [parsedString stringByTrimmingCharactersInSet:charset]; 
textview.text = text; 
1

tôi đã giải quyết vấn đề bằng cách xóa chế độ xem văn bản và thêm văn bản vào lần xem văn bản lần nữa, tôi không biết chính xác funda nhưng vấn đề của tôi được giải quyết. trong trường hợp của tôi: tôi đang thay đổi khung của chế độ xem văn bản từ bên ngoài thành chế độ xem khi nhấp vào nút. Trong khi đó, nút được nhấp vào chế độ xem văn bản không hiển thị nội dung và khi cuộn nó hiển thị.

tôi đã giải quyết, bằng cách xóa văn bản khỏi chế độ xem văn bản và nhập lại văn bản khi nhấp vào nút.

+0

Tôi nhìn thấy cùng một vấn đề ngay bây giờ. Tôi bắt đầu với màn hình tắt UITextView và sau đó trượt nó với một nút bấm. Tôi đã tải chế độ xem văn bản có văn bản (hơn 10 dòng) nhưng không được chấp thuận cho đến khi người dùng chạm vào chế độ xem văn bản. Điều này trông giống như lỗi iOS hoặc tính năng "lạ". Việc sửa chữa ở trên chỉ làm cho dòng đầu tiên có thể nhìn thấy được ... duh. – Jonny

10

Tìm thấy SOLUTION đơn giản

Có cùng vấn đề. Khi bạn đặt văn bản vào một UITextView không hiển thị, nó sẽ không vẽ văn bản.

tôi đã UITextView tôi tắt màn hình và hoạt hình nó trong như thế này:

[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationCurveEaseOut animations:^{ 
    self.contentView.center = CGPointMake(self.contentView.center.x + move * (self.contentView.frame.size.width /2), self.contentView.center.y); 
    self.textView.frame = self.textView.frame; // <<<--- ADD THIS LINE 
    } completion:^(BOOL finished) { 
    if (finished) { 
    } 
}]; 

Khi bạn tái thiết lập khung của TextView, nó lại thu hút đó là văn bản. Vì vậy, tất cả những gì bạn cần làm là thêm dòng tôi đã đánh dấu ở trên trước khi UITextView của bạn xuất hiện trên màn hình.

Cheers

+1

+1 Điều này hoàn toàn hút để phải làm điều này, nhưng điều này chắc chắn giải quyết vấn đề của tôi. –

+1

Trong trường hợp của tôi, tôi cần thiết đầu tiên thiết lập nó để CGRectZero, sau đó khôi phục lại nó. Đàn ông! – Qiulang

+0

có lẽ không mát mẻ nhưng làm việc – micromanc3r

0

Vui lòng thử nó khi TextView của bạn đang tải

NSAttributedString *oldtext = objTextView.attributedText; 
[objTextView removeFromSuperview]; 
objTextView.attributedText = oldtext; 
[self.view addSubview:objTextView]; 

Trong trường hợp của tôi văn bản của tôi là do

0

Khi bạn hoàn thành hoạt động mà phân tích cú pháp XML bạn đang đảm bảo rằng bản cập nhật của bạn đang xảy ra trên chủ đề chính?

Chỉ cập nhật UIKIT trên chuỗi chính để mọi cập nhật được thực hiện sẽ chỉ hiển thị vào lần tiếp theo bạn chạm vào đối tượng và bắt buộc cập nhật.

Làm ví dụ về một cách để thực hiện chính xác.

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ 

    [self parseXMLOffMainThread]; 

    dispatch_async(dispatch_get_main_queue(), ^{ 

     self.myTextView.text = parsedText; 

     });   

}); 
5

UITextXem kế thừa từ UIScrollView, vì vậy, chỉ cần cuộn nó.

[detailsTextView setContentOffset:CGPointMake(0, 1) animated:YES]; 
+0

Cảm ơn bạn đã tiết kiệm rất nhiều thời gian – Lukas

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