Рисование UIView с фона NSThread?
Я занимаюсь разработкой краски GL.
Чтобы нарисовать любой объект, я использую UIView, который реализован.
Начиная метод краски:
- (void)viewDidLoad {
....
[NSThread detachNewThreadSelector:@selector(paintingObjects)
toTarget:self
withObject:nil];
}
- (void)paintingObjects {
while(1) {
[NSThread sleepForTimeInterval:2];
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
ImplementedView *tmp = [self view];
[tmp draw];
[pool drain];
}
}
Но это не работает (не рисует объект).
Что здесь не так?
Пожалуйста, помогите мне, ребята.
Заранее спасибо.
1 ответ
Решение
Все классы пользовательского интерфейса не являются поточно-ориентированными и должны вызываться из основного потока:
- (void)paintingObjects {
while(1) {
[NSThread sleepForTimeInterval:2];
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
ImplementedView *tmp = [self view];
[tmp performSelectorOnMainThread:@selector(draw) withObject:nil waitUntilDone:YES];
[pool drain];
}
}
В этом случае вам лучше использовать NSTimer
,