查看堆栈或绘图

时间:2015-09-17 11:14:57

标签: ios objective-c drawrect addsubview

我正在使用日历应用程序,并且我在滚动视图的每个页面中都有很多视图。问题是在模拟器上运行良好,但是当我在设备上安装应用程序时,页面之间的滑动非常滞后。

我注意到很多时间都在买:

  • masksToBounds - 我需要一些圈子视图-s
  • addSubview - 有很多

并绘制drawRect涉及的所有视图以更改所有方法和顺序,并且调整大小时也会有不同的行为。

问题是如何解决滞后问题?是drawRect比子视图更好吗?

2 个答案:

答案 0 :(得分:2)

我可以建议你另类。我最近开发了一个基于日历的iOS应用程序,并使用了这个已经可用的FSCalendar工具。这在模拟器上非常流畅。滚动月视图时的设备。

所以,你可能想试试这个!

答案 1 :(得分:0)

我提出的解决方案是有一个容器,我放置所有视图,然后我将该视图转换为UIImage,并从20 UIView' si设法减少到一个UIImageView

我使用此方法从UIView获取图像:

- (UIImage *)snapShotForView:(UIView *)view
{
    UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return img;
}