我正在开发一个具有不同键盘布局的半钢琴应用程序,然后是通常的键盘布局。
我用 UIButtons 手动创建了视图,我的问题是我不知道如何从一个 UIButton 滑动到另一个,我用 addTarget 和 withEvent 选项解决了这个问题,这让我可以访问触摸。
现在,在我添加了这样的目标之后:
[C addTarget:self action:@selector(outsideOfKey: forEvent:) forControlEvents:UIControlEventTouchDragOutside|UIControlEventTouchDragInside];
[C addTarget:self action:@selector(keyGetsLeft: forEvent:) forControlEvents:UIControlEventTouchUpOutside | UIControlEventTouchUpInside];
(也适用于所有其他键),
我设法使它们可滑动,
outsideOfKey:forEvent:
如下:
-(void) outsideOfKey:(id)sender forEvent:(UIEvent *)event
{
for(UITouch *t in [event allTouches])
{
CGPoint touchPoint = [t locationInView:window];
if(CGRectContainsPoint(C.frame, touchPoint))
{
C.highlighted = YES;
}
else{
C.highlighted = NO;
}
(也为所有其他键完成)我可以从其他键滑入和滑入,当我将它们留在里面时keyGetsLeft:forEvent
:我刚刚使用了相同的语法而没有 else,突出显示的变为 NO。
到这里很容易,但是当我尝试进行多点触控时,我只能滑动其中一个触控点,其他点必须保持在同一位置。
更重要的是,如果我拿开其中一根手指,所有手指都会变得不突出,我知道所有这些的原因,但我不知道如何修复它并使其正常工作。