我在設置按鈕的標題標籤時遇到問題。基本上我有2個屏幕,他們都有這個按鈕,但他們都寫有不同的「數字」。發生的事情是,在按鈕標題準確反映我所在的屏幕之前,有一個非常明顯的延遲1-2秒。我試圖把[self.button reloadInputViews];
,但它仍然不會重新加載它,我仍然得到延遲。UIButton標題標籤延遲
[self.button setTitle:[NSString stringWithFormat:@"%d", [stringValue integerValue]]
forState:UIControlStateNormal];
有人知道如何強制按鈕刷新它的標題標籤嗎?謝謝您的幫助!
編輯:用於上下文更多代碼
self.guestsField = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.guestsField.frame = CGRectMake(self.guestsLabel.frame.origin.x + self.guestsLabel.frame.size.width, 100, 40, 30);
self.guestsField.titleLabel.font = [UIFont systemFontOfSize:20];
[self.guestsField addTarget:self action:@selector(pressGuestsField:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:self.guestsField];'
myFunction的{
的NSDictionary *字典= [通知USERINFO];
if ([dict count] > 0)
{
[self.guestsField setTitle:[NSString stringWithFormat:@"%d", [GetOrder.NumberOfGuests integerValue]] forState:UIControlStateNormal];
}
}
固定它:是在不同的線程運行myFunction的。只是做了主線程中的setTitle dispatch_sync(dispatch_get_main_queue(), ^{
你在哪裏調用這段代碼,以及之前和之後發生了什麼? UI線程會自動更新標題,但如果它忙於做其他事情,那麼您必須等待。 –
我同意@MarcusAdams ...東西在咀嚼干擾UI的主線程。 – Dan
我在一個函數內部調用這個代碼,該函數一旦從一個屏幕切換到另一個屏幕就會運行。 –