我目前正在使用NSNotifications从我的应用代表向我的iPhone应用程序中的UIView发送消息。
UIView接收到通知,然后我使用选择器来更改UIView上按钮的状态。
这是传递给选择器的函数:
-(void)changeButtonState
{
NSLog(@"Change button state received");
[testButton setEnabled:NO];
[testButton setNeedsDisplay];
}
这会被调用,但按钮状态永远不会在视觉上被更改,它在功能上会被禁用,但看起来仍然在屏幕上启用。
所以看起来setNeedsDisplay在这里不起作用或者我的编码不正确?
有人能告诉我在更改状态时应该如何正确地重绘按钮或视图吗?
答案 0 :(得分:4)
由于UI刷新通常在主线程上完成,因此只会在主线程上调用setNeedsDisplay
。因此,您需要确保使用performSelectorOnMainThread
在主线程上调用它。