2013-07-08 934 views
3

我有一个启用分页的scrollView。当我开始拖动到下一页时,我想在我的导航栏中文字顺利淡出。我委托方法做到这一点:淡出NavigationBar标题

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 

我计算与拖动的百分比:

CGFloat percentDragging = 1 - fmodf(scrollView.contentOffset.x,self.view.frame.size.width)/self.view.frame.size.width; 

这返回正确的价值观。

所以: 我尝试设置:

self.navigationController.navigationBar.titleView.alpha = percentDragging 

,但没有奏效。

我所解决的问题:

((UIView*)[[self.navigationController.navigationBar subviews] objectAtIndex:1]).alpha = percentDragging; 

但这是丑陋的,原油,危险的解决方案。有一个更好的方法?

回答

1

设置titleView的alpha不起作用,因为它不会让您访问默认的导航栏标题标签 - 只有在设置了标签后才具有值。我认为你在这里必须做的是自己设置一个自定义的titleView,包含一个带有font/shadow /等的UILabel。设置为与标准样式相匹配,并在转换过程中将该标签淡入淡出。