让 UITouch 仅在触摸特定颜色时执行任务
Posted
技术标签:
【中文标题】让 UITouch 仅在触摸特定颜色时执行任务【英文标题】:Have UITouch only perform task when touching certain color 【发布时间】:2010-07-19 00:36:12 【问题描述】:只有当我在 UIImage 视图中触摸某种颜色时,我才能让 UITouch 识别并执行某项任务。
例如:
我有一张街道的图像。这条街有灰色的建筑物和一条白色的道路。如果我触摸一座建筑物,我不希望发生任何事情,但如果我触摸一条白色的道路,我想将我触摸的那部分突出显示为浅蓝色。
【问题讨论】:
【参考方案1】:-
捕捉图像上的触摸事件
使用触摸位置获取该位置的像素颜色。
决定颜色代表道路还是建筑物。
获取精确的触摸坐标
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView: imageView];
// Here are your touch coordinates
touchPoint.x
touchPoint.y
在该位置获取像素颜色:code to get pixel color。
判断颜色是否代表道路。
// 230 used as example, Experiment to find a good value
if (red >230 && green >230 && blue >230)
// turn street blue
【讨论】:
要获得单个像素值,请随时查看gist.github.com/1377949以上是关于让 UITouch 仅在触摸特定颜色时执行任务的主要内容,如果未能解决你的问题,请参考以下文章