iPhone - 如何刷新/重绘已更改状态的按钮?

时间:2011-06-27 15:33:13

标签: iphone objective-c uiview uibutton redraw

我目前正在使用NSNotifications从我的应用代表向我的iPhone应用程序中的UIView发送消息。

UIView接收到通知,然后我使用选择器来更改UIView上按钮的状态。

这是传递给选择器的函数:

-(void)changeButtonState
{
    NSLog(@"Change button state received");
    [testButton setEnabled:NO];
    [testButton setNeedsDisplay];
}

这会被调用,但按钮状态永远不会在视觉上被更改,它在功能上会被禁用,但看起来仍然在屏幕上启用。

所以看起来setNeedsDisplay在这里不起作用或者我的编码不正确?

有人能告诉我在更改状态时应该如何正确地重绘按钮或视图吗?

1 个答案:

答案 0 :(得分:4)

由于UI刷新通常在主线程上完成,因此只会在主线程上调用setNeedsDisplay。因此,您需要确保使用performSelectorOnMainThread在主线程上调用它。

相关问题