查看堆栈或绘图
Posted
技术标签:
【中文标题】查看堆栈或绘图【英文标题】:View stack or Drawing 【发布时间】:2015-09-17 11:14:56 【问题描述】:我正在开发一个日历应用程序,并且在滚动视图的每个页面中都有很多视图。问题是在模拟器上它运行良好,但是当我在设备上安装应用程序时,页面之间的滑动非常滞后。
我注意到购买的时间很多:
masksToBounds
- 我需要一些圆形视图-s
addSubview
- 有很多
并在drawRect
中绘制所有视图涉及更改所有方法和顺序,并且在调整大小时会有不同的行为。
问题是如何解决滞后问题? drawRect
比子视图好吗?
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于查看堆栈或绘图的主要内容,如果未能解决你的问题,请参考以下文章