我想通过alpha
向上/向下滚动来更改UIView
的{{1}}值,我的问题是我如何设置我的视图的alpha值用户向上或向下滚动?像UISlider,但有UIScrollView
UIScrollView
答案 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)