iOS:通过滚动更改值

时间:2015-03-13 20:04:12

标签: ios objective-c iphone xcode uiscrollview

我想通过alpha向上/向下滚动来更改UIView的{​​{1}}值,我的问题是我如何设置我的视图的alpha值用户向上或向下滚动?像UISlider,但有UIScrollView

UIScrollView

2 个答案:

答案 0 :(得分:2)

也许尝试使用滚动视图从原点偏移的百分比来设置alpha值,例如:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
    _redView.alpha = 1-(scrollView.contentOffset.y/(scrollView.contentSize.height - scrollView.frame.size.height));
}

所以在这种情况下,如果scrollview位于顶部scrollView.contentOffset.y == 0,因此alpha == 1,即 alpha = 1-(0/(contentHeight - scrollViewHeight)) = 1-0 = 1

如果它位于底部,scrollView.contentOffset.y == scrollView.contentSize.height - scrollView.frame.size.height(因为内容偏移很难到达内容视图的底部,但会反而到达底部内容视图的内容减去滚动视图的高度。因此,alpha == 0,即alpha = 1 - ((contentHeight - scrollViewHeight)/(contentHeight - scrollViewHeight)) = 1-1 = 0

答案 1 :(得分:0)

您希望alpha基于滚动视图的位置,还是只想向上滚动以使视图更加清晰,向下滚动以使其更透明?

如果您想要后者,只需向上滚动即可将.01或.1添加到Alpha中,如果向下滚动则可减去。

示例:

_redView.alpha = _redView.alpha - 0.1 //in the "down" statement

如果你想要它基于偏移量,那么你需要一个公式来将scrollview的偏移量转换为介于0.0和1之间的数字。

示例:

float alpha = 1 - (self.view.frame.size.width/self.scrollView.contentSize.height)