【发布时间】:2016-07-18 15:40:49
【问题描述】:
我在导航栏上添加了两个标签,我试图根据滚动视图上的 y 位置淡出另一个标签。当我记录 alpha 值时,似乎这些值是正确的。但是当你运行它时它的样子是不对的。 topTitleLable 的 alpha 从 1 变为几乎为 0,然后慢慢淡入而不是淡出。不知道如何调试这个。
这是向下滚动的图像,当它应该淡出时标签淡入:
tldr:如何根据 scrollView 位置更改标签 alpha?
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
static CGFloat startFade = 190;
static CGFloat endFade = 215;
CGFloat difference = endFade - startFade;
if (scrollView.contentOffset.y < startFade && self.navigationController.topTitleLabel.alpha != 1.0) {
self.navigationController.topTitleLabel.alpha = 1.0;
self.navigationController.bottomTitleLabel.alpha = 0.0;
} else if (scrollView.contentOffset.y >= startFade && scrollView.contentOffset.y <= endFade) {
CGFloat scrollViewFraction = difference - (scrollView.contentOffset.y - startFade);
CGFloat topLabelAlpha = scrollViewFraction/difference;
CGFloat bottomLabelAlpha = 1 - topLabelAlpha;
self.navigationController.topTitleLabel.alpha = topLabelAlpha;
NSLog(@"%f VS. %f", topLabelAlpha, self.navigationController.topTitleLabel.alpha);
self.navigationController.topTitleLabel.alpha = bottomLabelAlpha;
} else if (scrollView.contentOffset.y > endFade && self.navigationController.topTitleLabel.alpha != 0.0) {
self.navigationController.topTitleLabel.alpha = 0.0;
self.navigationController.bottomTitleLabel.alpha = 1.0;
}
}
【问题讨论】:
标签: ios objective-c user-interface uiscrollview uilabel