我正在开发一个应用程序,允许用户通过从提供的列表中选择各种身体/头发/服装/眼睛/等样式来创建自己的2D头像(类似于Bitmoji)的图像。到目前为止,我通过将多个UIImageView叠加在一起,每个代表一个可定制的元素。用户可以选择要分配给每个UIImageView的图像,方法是首先从两个集合视图中选择元素类型,然后选择元素图像。例如,如果用户在一个集合视图中单击头发类型类别,则他们可以从另一个集合视图中的数字列表中选择以更改hairTypeImageView的照片。iOS - 如何为图像创建图层
我认为这种方法的问题很明显:它需要大量的UIImageViews,这似乎使应用程序变慢了很多。此外,除此之外,我们还要求用户能够更改每个元素的基本颜色,而不更改其阴影或边框。到目前为止,我已经能够做到这一点的唯一方法是让应用程序为每个元素存储两个图像,一个用于底层填充颜色,另一个用于顶层图层和边框,然后使用
fillColorImageView.image = [fillColorImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[fillColorImageView setTintColor:color];
更改填充颜色。这种解决方案的工作原理,但它使应用程序效率更低,因为这意味着我现在必须有UIImageViews的数量的两倍(每个可定制的元素两个),另外我必须创建双倍的艺术品,应用程序必须存储双倍的图像。
有没有更好的方法来做到这一点,我失踪了?
其实我刚刚发现类似的东西太多,其工作:遍历UIImages的阵列,在UIGraphicsImageContext吸引他们,然后将所得的情况下保存为新UIImage的。这解决了一切,但颜色编辑,我不认为我能解决。 – Grambo