【问题标题】:View stack or Drawing查看堆栈或绘图
【发布时间】:2015-09-17 11:14:56
【问题描述】:

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

我注意到购买的时间很多:

  • masksToBounds - 我需要一些圆形视图-s
  • addSubview - 有很多

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

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

【问题讨论】:

    标签: ios objective-c drawrect addsubview


    【解决方案1】:

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

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

    【讨论】:

    • 不知道为什么我在这里投了反对票。我的目的是让 OP 知道已经有可用的流畅运行的日历。所以,如果它适合 OP,而不是重新发明轮子,它可以被重复使用。这就是 SO & Git-Hub 社区/工具的全部目的。令人失望!
    【解决方案2】:

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

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

    - (UIImage *)snapShotForView:(UIView *)view
    {
        UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0);
        [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    
        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    
        UIGraphicsEndImageContext();
    
        return img;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 2013-02-09
      • 1970-01-01
      • 2013-09-17
      相关资源
      最近更新 更多