ios scrollView联动处理-左边悬停、上面悬停

来源:互联网 发布:ubuntu相连设备ip 编辑:程序博客网 时间:2024/05/17 08:32

写一个蛮常见的demo,见下图:

(需求:白色区域停止不动,拖动黄色区域,蓝色区域跟着上下滚动,左右不变,绿色区域上下不变,左右跟着滚动,拖动蓝色、绿色区域同理,由于不能上gif所以比较难描述)



先说一下思路:整个界面分成四个视图,底下放一个大滚动视图把这四块包起来,长度为蓝色视图长度,宽度为绿色视图宽度

假如蓝色跟绿色视图是滚动视图禁止其滚动属性,黄色区域就贴着滚动视图的一般视图,没有任何特性,滚动视图滚他就跟着滚

在滚动的时候保持白色视图位置等于contentOffset,这样就可以保证一直可见

蓝色视图origin.x保持不变,y等于滚动视图偏移的y

绿色视图origin.y保持不变,x等于滚动视图偏移的x

关键代码如下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{    if (scrollView == _scrollView) {                CGPoint contentOffset = scrollView.contentOffset;                CGRect topFrame = _topView.frame;        topFrame.origin.y = contentOffset.y;        _topView.frame = topFrame;                CGRect leftFrame = _leftView.frame;        leftFrame.origin.x = contentOffset.x;        _leftView.frame = leftFrame;                CGRect allFrame = _allView.frame;        allFrame.origin = contentOffset;        _allView.frame = allFrame;    }}

附上测试demo


1 0
原创粉丝点击