我对IOS开发很陌生。让我先解释一下我的问题。
在 Adobe Flash 中,有一个鼠标事件使我能够检测鼠标进入影片剪辑。例如,假设我有一个主容器影片剪辑,并且在其中我有一堆对象。如果我将鼠标拖到这些对象上,它们将 - 例如 - 改变它们的颜色。
在 IOS 中,我有一个用作容器的主视图,在其中我填充了几个 UIView,它们的颜色设置为某种颜色-蓝色-。我想要实现的是,当我点击并开始移动我的手指时,我希望我手指下的那些改变它们的颜色。我正在使用以下代码:
for (int i=0;i<8;i++)
{
for(int j=0; j<8; j++)
{
UIPanGestureRecognizer * gesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureCaptured:)];
UIView * test = [[UIView alloc] initWithFrame:CGRectMake(i*34, j*34, 32, 32)];
[test setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:test];
[test addGestureRecognizer:gesture];
}
}
对于处理程序:
-(void) panGestureCaptured:(UIPanGestureRecognizer*)sender
{
[sender.view setBackgroundColor:[UIColor redColor]];
}
但问题是,只有第一个的颜色被改变了。当然,这样做可能会出现性能问题:虽然只有一次捕获和颜色变化就足够了;当我的手指在正方形内时,处理程序/动作被多次调用。
那么,有什么建议可以解决这类问题吗?
提前致谢。