1
我目前使用NSNotifications从我的应用程序委托向我的iPhone应用程序中的UIView发送消息。iPhone - 我如何刷新/重画一个已改变状态的按钮?
UIView接收到通知,然后使用选择器更改UIView上按钮的状态。
这里是传递到选择的功能:
-(void)changeButtonState
{
NSLog(@"Change button state received");
[testButton setEnabled:NO];
[testButton setNeedsDisplay];
}
这被称为但是按键的状态永远不会在视觉上的改变,但功能被禁用,但看起来像它在屏幕上仍处于启用状态。
所以它看起来像setNeedsDisplay要么不在这里工作,要么是不正确的编码?
任何人都可以告诉我如何正确重绘按钮或视图,当我改变状态?
我相信你会想到这一点,但是因为你没有在你的问题中提到它,只要确保:你是否在你的按钮上为UIControlStateDisabled设置了一个新的图像/标题/ etc,或者在IB还是代码?通常调用'setEnabled'会自动使按钮重新绘制其新状态,除非您没有设置不同的状态或将其重新实现在子类中。 – lxt
你确定'testButton'已连接而不是'nil'吗? –
我可能是错的,但我认为setNeedsDisplay只能在主线程中调用时才起作用。所以尝试调用'performSelectorOnMainThread'也许? –