UIViewはスレッドセーフではないので、バックグラウンドスレッドにビューを追加できません。これを回避するには、バックグラウンドスレッドにUIViewを作成してから、メインスレッドに追加しても大丈夫ですか?
注:メインスレッドでこれを行わない理由は、実際のコードがはるかに複雑であるため、すべてのビューを作成して値を入力するのに時間がかかるためです。これを行ったときにUIが応答しなくなることを望まないので、これを回避しようとしています。
例えば..
-(void)addLabel//called on background thread
{
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(0,0,40,100)];
[label setText:@"example"]
[self.view performSelector:@selector(addSubview:) onThread:[NSThread mainThread] withObject:example waitUntilDone:YES];
}
前もって感謝します。