TouchesMoved 与 Button?
Posted
技术标签:
【中文标题】TouchesMoved 与 Button?【英文标题】:TouchesMoved with Button? 【发布时间】:2010-02-07 22:23:08 【问题描述】:是否可以将touchesMoved
功能与按钮一起使用而不是UIImageView
s?
【问题讨论】:
【参考方案1】:是的。
在您的 .h 文件中
IBOutlet UIButton *aButton;
在您的 .m 文件中
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
UITouch *touch = [[event touchesForView:self.view] anyObject];
CGPoint location = [touch locationInView:touch.view];
if(CGRectContainsPoint(p1.frame, location))
if (!p1.isHighlighted)
[self pP01];
[p1 setHighlighted:YES];
else
[p1 setHighlighted:NO];
//
if(CGRectContainsPoint(p2.frame, location))
if (!p2.isHighlighted)
[self pP02];
[p2 setHighlighted:YES];
else
[p2 setHighlighted:NO];
if(CGRectContainsPoint(p3.frame, location))
if (!p3.isHighlighted)
[self pP03];
[p3 setHighlighted:YES];
else
[p3 setHighlighted:NO];
最后,在 Interface Builder 中,将您的按钮连接到“aButton”并为您的按钮关闭“启用用户交互”。 这很重要,因为它允许 touchesMoved 处理它。
我已经调整了上面的代码来检查按钮的高亮状态。这是为了在您在该区域内拖动手指时阻止它多次触发按钮。
要让您的“钢琴键”在您敲击时发挥作用,请使用-(void)touchesBegan
要将您的按钮高亮状态设置回= NO;
,请使用-(void)touchesEnded
我不得不找出你所追求的完全相同的东西。我想不通Touch Drag Enter
因此,为避免在该主题上发布多个帖子,请查看我的问题和答案。
question 1
question 2
【讨论】:
嘿.. 感谢您的回答,但我收到了 UITouch *touch = [[event....!我在 UITouch *touch = [[event allTouches] anyObject]; 中更改了这一行它工作。但是.. =) 如果我按下我的按钮,它应该发出一个音符。但现在我不能按,只能滑动。如果我滑入我的按钮,音符会不止一次响起。你能帮帮我吗?谢谢您的回答。我现在才看到。谢谢【参考方案2】:您当然可以发现当前正在触摸事件的“视图”正在拖动,即使它是一个按钮。您还可以对 Interface Builder 中的按钮使用“触摸拖动输入”连接。选择按钮后按 cmd+2 查看连接选项卡。
【讨论】:
以上是关于TouchesMoved 与 Button?的主要内容,如果未能解决你的问题,请参考以下文章
C语言中怎样让tablelayoutpanel中控件居中显示?
IOS开发button点击之后有高亮效果,效果一直保留,点击下一个按钮高亮效果转移。
开发中遇到的bug-Property or method “xxxx“ is not defined on the instance but referenced during render.