作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在iOS7上,我们可以通过改变导航栏的颜色
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
但是这个方法在改变barTintColor的时候有一个淡入淡出的动画,请问有没有人知道如何阻止这个动画并立即改变颜色?
更具体地说,我写了一个测试程序,它的窗口根 Controller 是navigationController。在 navigationController 中,有一个带有 3 个按钮的 View Controller 。 3 个按钮都绑定(bind)到以下操作:
- (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]
都不起作用,动画仍然存在。
希望有人能帮忙,谢谢!
最佳答案
尝试将 barTintColor 设置为 nil,然后再重新设置。
self.navigationController.navigationBar.barTintColor = nil;
self.navigationController.navigationBar.barTintColor = color;
我遇到了类似的问题,它帮我解决了。希望对您有所帮助。
关于ios - 如何在 iOS7 上更改没有动画的 barTintColor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21041547/
我是一名优秀的程序员,十分优秀!