我从UIVIEw子类(myVIEw)并实现drawRect函数来执行以下 *** 作…
-(voID) drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGfloat red[4] = { 1,1}; CGContextSetlinewidth(context,1); CGContextSetShouldAntialias(context,NO); CGContextSetlineCap(context,kCGlineCapSquare); CGContextSetstrokecolor(context,red); // rects is an array of CGRect of size ~200 for (int i = 0; i < N; i++) { CGContextAddEllipseInRect(context,rects[i]); } // points is an array of CGPoint of size ~100 CGContextAddlines(context,points,N); CGContextstrokePath(context,color);}
但这是狗慢.这里有什么我想念的吗?
完成一次完整绘图需要大约1秒钟
相反,您要做的是为每个要动画的元素创建单独的图层或视图.这些图层或视图将只绘制一次,然后进行缓存.当图层移动时,它们不会被重绘,只是复合.通过这种方式,即使是最慢的iOS设备(原始的iPhone,iPhone 3G和第一代iPod touch)也可以以每秒60帧的速度动画多达100层.
把它想象成动画片.他们不是让动画师手工重绘每一帧的每个部分,而是使用单元格来重复保持相同或仅移动而不改变形状的帧之间的元素.这显着减少了制作漫画的努力.
总结以上是内存溢出为你收集整理的在iPhone上绘制几行和圆圈时,CGContextStrokePath性能不佳全部内容,希望文章能够帮你解决在iPhone上绘制几行和圆圈时,CGContextStrokePath性能不佳所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)