在iOS7,我們可以通過如何在沒有iOS7動畫的情況下更改barTintColor?
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
改變導航欄的顏色,但這種方法有改變barTintColor時的動畫漸變,因此,沒有anynone知道如何防止這種情況的動畫,並立即更改顏色?
更具體地說,我寫了一個測試程序,其窗口的根控制器是navigationController。在navigationController中,有一個帶3個按鈕的視圖控制器。 3個按鈕都結合以下動作:
- (void)onClick:(id)sender
{
UIColor *color = nil;
if (sender == self.redButton)
{
color = [UIColor redColor];
}
else if (sender == self.blueButton)
{
color = [UIColor blueColor];
}
else if (sender == self.blackButton)
{
color = [UIColor blackColor];
}
self.navigationController.navigationBar.barTintColor = color
// [UIView animateWithDuration:0 animations:^{
// self.navigationController.navigationBar.barTintColor = color;
// }];
// [CATransaction begin];
// [CATransaction setDisableActions:YES];
// self.navigationController.navigationBar.barTintColor = color;
// [CATransaction commit];
}
兩者改變動畫的持續時間爲0,或使用[CATransaction setDisableActions:YES]
不起作用,動畫仍然存在。
希望有人能幫忙,謝謝!
你運行該代碼後?動畫仍然存在,動畫持續時間不會改變。 – tctony