UIScrollView 性能优化 - view转为Image

Posted 助金

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIScrollView 性能优化 - view转为Image相关的知识,希望对你有一定的参考价值。

进入做地图闹钟app,图层关系是这样的: subwayView 上先绘制线路上各个元素:线条 ,站点名称-Label,站点位置(画圆圈表示)-View.shapeLayer UIBezierPath 方式绘制;subwaView add 在Scrollview 上,然后实现放大缩小操作,发现上下左右移动时候不是很流畅的感觉,分析应该是subwayView 的subView数量(200多个 )有影响。

     想到的办法subwayView 绘制完所有的Subview后 ,将其转化为Image,然后移除所有的Subview,再将在 subwayView 上嵌套imageview ,之后缩放相当于缩放一个iamge。

经过测试果然流畅了。问题视乎解决了。但是发现label的文字确很模糊 ,特别是放大后,于是必须提高转化的图片的像素,使用如下方法:

- (UIImage *)convertViewToImage:(UIView*)v{
    //设置高分辨率 防止文字模糊
    UIGraphicsBeginImageContextWithOptions(v.bounds.size, false, [[UIScreen mainScreen] scale]*2);

    [v.layer renderInContext:UIGraphicsGetCurrentContext()];
    
    UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return image;
    
}

以上是关于UIScrollView 性能优化 - view转为Image的主要内容,如果未能解决你的问题,请参考以下文章

[转]Angular移除不必要的$watch之性能优化

从 View 绘制谈性能优化

从 View 绘制谈性能优化

Android性能优化:ViewStub

Android性能优化:ViewStub

为啥滚动 UITableView 比滚动 UIScrollView 响应更快?