如上图,希望折线图左右滑动时,Y坐标轴保持不动。但X坐标与Y坐标是一个整体(scrollview),向左滑动Y坐标就慢慢从视图左方消失。这时我想到把Y坐标部分截屏并保存为图片,生成新的视图(imageview)加在折线图上,看起来就达到Y坐标固定的效果。
实现代码如下:
- UIGraphicsBeginImageContextWithOptions(CGSizeMake(41, lineBodyView.bounds.size.height),NO, 0.0);
-
- [lineBodyView.layer renderInContext:UIGraphicsGetCurrentContext()];
-
- UIImage *image= UIGraphicsGetImageFromCurrentImageContext();
-
- UIGraphicsEndImageContext();
-
-
-
- CGRect rect = CGRectMake(0, kTopViewHeight, kMarginLeft+1, lineBodyView.bounds.size.height);
-
- cloneCoordinateView = [[UIImageViewalloc] initWithFrame:rect];
-
- cloneCoordinateView.image = image;
-
- [selfaddSubview:cloneCoordinateView];
其中,lineBodyView就是中间可滚动的部分(不包括上面的文字标题“2013-3-20噪声相关性分析”和下面的“LEQ、L10、L50、L90”标注);kTopViewHeight就是上面的文字标题的高度,kMarginLeft就是Y坐标左边的宽度,而Y坐标本身宽度为1。
在滚动事件的委托中调用此方法即可。