我想在循環中動態更新UITextField中的文本,並且文本不會實時顯示。當循環完成時,它將顯示最終值。每次在循環中更新時如何顯示文本?我在桌面視圖中發現了許多線程更新,但這個文本字段只是在主應用程序。 這是一個帶有文本框和按鈕的簡單應用程序。如何在循環中以編程方式更新UITextField中的文本
在ViewController.h#進口
@interface ViewController : UIViewController<UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UITextField *myText;
@property (weak, nonatomic) IBOutlet UIButton *myButton;
- (IBAction)pressMe:(UIButton *)sender;
@end
在ViewController.m #進口 「ViewController.h」
@interface ViewController()
@end
@implementation ViewController
@synthesize myButton,myText;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
myText.delegate = self;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)pressMe:(UIButton *)sender {
for (int i=0;i<10;i++){
NSString *m = [[NSString alloc] initWithFormat:@"%d",i];
NSLog(@"%@",m);
[myText setText:m];
[NSThread sleepForTimeInterval:.05];
}
}
@end
的texfield代表連接到視圖控制器。這是一個簡單的應用程序來說明我正在嘗試做什麼。我的實際應用程序正在嘗試從gps到屏幕持續更新顯示緯度。 任何幫助表示讚賞。
基本上發生的事情是,你正在運行在主線程的循環,同樣的一個負責更新用戶界面。因爲線程忙於運行循環,所以無法更新UI。一旦你的pressMe:消息完成,UI將被更新。如果要在循環的每一步更新UI,它需要在單獨的線程上運行並調用UI重新加載到主線程。 – 2015-02-23 13:41:41
用示例代碼編輯的答案。 – n00bProgrammer 2015-02-24 06:42:48