首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带按钮的TouchesMoved?

带按钮的TouchesMoved?
EN

Stack Overflow用户
提问于 2010-02-08 06:23:09
回答 2查看 3.1K关注 0票数 1

是否可以使用带有按钮的touchesMoved函数而不是UIImageView

EN

回答 2

Stack Overflow用户

发布于 2010-02-10 16:12:47

是。

在.h文件中

代码语言:javascript
复制
IBOutlet UIButton *aButton;

在.m文件中

代码语言:javascript
复制
    -(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];
    }
}

最后,在界面生成器中,将您的按钮连接到'aButton‘,然后关闭按钮的“用户交互启用”。这一点很重要,因为它允许touchesMoved处理它。

我已经调整了上面的代码,以检查按钮突出显示的状态。这是为了防止当您将手指拖动到区域内时,它会多次触发按钮。

要让你的“钢琴键”在你轻敲时工作,可以使用-(void)touchesBegan

要将按钮突出显示状态设置回= NO;,请使用-(void)touchesEnded

我不得不找出和你想要的完全一样的东西。我搞不懂Touch Drag Enter

因此,为了避免在这个主题上发表多篇帖子,请查看我的问题和答案。

question 1

question 2

票数 1
EN

Stack Overflow用户

发布于 2010-02-08 06:29:22

你当然可以发现当前正在被触摸的“视图”正在被拖过,即使它是一个按钮。您也可以在Interface Builder中对按钮使用'touch drag enter‘连接。选择一个按钮后,按cmd+2键查看connections选项卡。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2218613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档