Tag: 处理效率

如何从Swift中的图像arrays高效地创build多行照片拼贴

问题 我正在build立一个从我放置到桌面视图的图像arrays的照片拼贴。 当图像的数量达到tableview单元格宽度的边界时(这将允许我显示拼贴中的图像行),我想要使图像换行。 目前我得到一个单一的行。 如果需要更多信息,请随时通知我们。 我最有可能不会以最有效的方式来处理这个问题,因为在arrays中使用的图像数量开始增加时会有延迟。 (对此的任何反馈将非常感激)。 Nota Bene 我正在创build一个拼贴图片。 它实际上是一个图像。 我想通过在内存中创build一个高效的列和行matrix来安排拼贴。 然后我用图像填充这些反义词。 最后,我快照生成的图像,并在需要时使用它。 该algorithm效率不如书面,只产生一行图像。 我需要一个轻量级的替代下面使用的algorithm。 我不相信在这种情况下,UICollectionView将是一个有用的替代scheme。 伪代码 给定一组图像和一个目标矩形(代表目标视图) 获取数组中的图像数量与每行允许的最大数量 定义一个适当大小的小矩形来容纳图像(以便每行填充目标矩形,即 – 如果一个图像应该填充该行;如果9个图像则应该完全填充该行;如果具有最大值的10个图像每行9个图像,然后从第10行开始第二行) 迭代收集 将每个矩形从左到右放置在正确的位置,直到达到最后一个图像或每行的最大数量; 继续下一行,直到所有的图像适合目标矩形 当达到每行最大数量的图像时,放置图像并设置下一个矩形出现在连续的行上 使用:Swift 2.0 class func collageImage (rect:CGRect, images:[UIImage]) -> UIImage { let maxSide = max(rect.width / CGFloat(images.count), rect.height / CGFloat(images.count)) UIGraphicsBeginImageContextWithOptions(rect.size, false, UIScreen.mainScreen().scale) var xtransform:CGFloat = 0.0 for img […]