3

我有一个启用分页的滚动视图。当我开始拖动到下一页时,我想在导航栏中的文本平滑地淡出。我用委托方法来做:

-(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;

但这是丑陋、粗糙、危险的解决方案。有一个更好的方法?

4

1 回答 1

1

设置titleView's 的 alpha 不起作用,因为这不会让您访问默认导航栏标题标签——它只有在您设置一个值时才有值。我认为您在这里要做的就是自己设置一个自定义titleView,其中包含一个带有字体/阴影/等的UILabel。设置为匹配标准样式,并随着您的过渡淡入淡出该标签。

于 2013-07-08T16:51:21.483 回答