1

我目前正在使用 NSNotifications 将消息从我的应用程序委托发送到我的 iPhone 应用程序中的 UIView。

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

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

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

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

所以看起来 setNeedsDisplay 要么在这里不起作用,要么我的编码不正确?

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

4

1 回答 1

4

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

于 2011-06-27T15:53:43.497 回答