我将 UINavigationBar 子类化以设置自定义背景图像。
我正在使用它来初始化 UINavigationController:
-(id)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass
问题是当新的 UIViewControllers 被推送到 NavigationController 堆栈时,标题文本会从右侧穿过背景图像以一种看起来有点糟糕的方式进行动画处理。
问题:如何调整动画,例如它在动画时淡入。
我最接近的方法是在推送/弹出的 ViewController 类中创建自定义淡入淡出动画。我使用 NSTimer 来触发对 titleView 的 alpha 的更改:
UILabel *titleView = (UILabel *)self.navigationItem.titleView;
...
-(void)setAlpha:(float)alpha
{
titleView.textColor = [UIColor colorWithRed:grayShade green:grayShade blue:grayShade alpha:alpha];
}
但是,如果我在“ViewDidAppear”中触发它已经太晚了,并且在新视图完成滑入后开始淡出。我想我可以在“ViewWillAppear”中触发它,但这可能会导致不确定和不一致的时间在不同的设备上。我的假设是否正确,如果是这样,我怎样才能以我想要的方式自定义动画?