Tôi không thể thay đổi văn bản UILabel. Mã cho các UILabel bên viewDidLoad là:Văn bản nhãn không được cập nhật
startLabel=[[UILabel alloc] initWithFrame:CGRectMake(75, 395, 200, 30)];
[email protected]"Recording Sound ...";
startLabel.backgroundColor=[UIColor clearColor];
startLabel.textColor=[UIColor whiteColor];
startLabel.font=[UIFont boldSystemFontOfSize:17];
[self.view addSubview:startLabel];
Sau đó, nếu tôi muốn thay đổi nhãn của văn bản với đoạn mã sau, nó không thay đổi trên ứng dụng:
[email protected]"Searching Database ...";
hoặc
[startLabel setText:@"Searching Database ..."];
Các UILabel là không có sản phẩm nào, tôi in nó ra trong gỡ lỗi và nó cho thấy:
(gdb) po startLabel
<UILabel: 0x2c1a30; frame = (75 395; 200 30); text = 'Searching Database ...';
clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x2ae8f0>>
Vì vậy, văn bản của nhãn thay đổi bên trong UILabel, nhưng nó không được cập nhật trên màn hình.
Có ai vui lòng cho tôi biết Tôi bị thiếu ở đây không? Cảm ơn.
Chỉnh sửa 1: Tôi đã thử performSelectorOnMainThread:
- không hoạt động đối với tôi. Chỉnh sửa 2: Tôi đang sử dụng các lớp AVFoundation
và ASIHTTP
để ghi lại âm thanh và tải tệp đã ghi lên đây. Không có gì khác. Không sử dụng bất kỳ chủ đề nào.
Bạn đang cập nhật văn bản (phương pháp nào)? Nó cần phải trên cùng một luồng (xem: http://stackoverflow.com/questions/6000741/cant-redraw-uilabel-after-updating-text). –
@Ben: aint cho monotouch? Ngoài ra, tôi ở trong cùng một chủ đề, chỉ là một chức năng khác! – Ahsan
Tôi hoàn toàn bỏ lỡ rằng là một câu hỏi MonoTouch, nhưng tôi thấy một vấn đề tương tự về việc cần phải được trên cùng một thread trong một diễn đàn Mac sử dụng performSelectorOnMainThread (http://forums.macrumors.com/showthread.php?t=463200) , vì vậy tôi chỉ tự hỏi bạn đang gọi nó từ đâu. –