我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?
Posted
技术标签:
【中文标题】我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?【英文标题】:I have an UIImage that is a line drawn black & white image in a UIImageView. How can I fill inside of the lines with color on touch? 【发布时间】:2013-05-24 03:55:44 【问题描述】:我在 UIImageView 中有这个 UIImage:
我想要这样当用户触摸任何盒子内部时,它会被蓝色填充。
这只是一个例子……我要使用的实际图像不是正方形,而是更复杂的线条图,所以用代码绘制它会非常复杂。
最好的方法是什么?
【问题讨论】:
为什么会有这样的图片。如果用颜色填充矩形是您的要求。请改用自定义 UIView。并使用 CGContext 绘制这些矩形,当用户单击视图时,在视图上调用 setNeedsDisplay,这将为视图调用 drawRect。在那里你可以填写这些矩形。 How to draw a Rectangle in -drawRect: 和- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;
会帮助你..
这只是一个例子……我要使用的实际图像不是正方形,而是更复杂的线条图。
【参考方案1】:
您可以使用洪水填充算法。
这是填充任何图像的最佳方式。
有一些链接
http://en.wikipedia.org/wiki/Flood_fill
并从这里获取示例代码
Flood Fill
【讨论】:
【参考方案2】:使用UIView
并实现它的drawrect方法来显示颜色。使用QuartzCore
和CoreGraphics
来绘制。通过向视图绘制颜色来实现触摸。
【讨论】:
以上是关于我有一个 UIImage,它是 UIImageView 中绘制的黑白图像。如何在触摸时用颜色填充线条内部?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中从文件夹中获取 UIImage 数组?
如何在不破坏滚动功能的情况下将 UIImage 添加到 UIScrollView?