首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像为按钮C4

图像为按钮C4
EN

Stack Overflow用户
提问于 2013-10-17 07:44:05
回答 2查看 46关注 0票数 2

我试图添加一个动作,一旦一个图像被点击。我首先尝试添加一个C4Button,然后给它一个图像,但这一点都没有结果。所以现在我只想在图像中添加一个点击函数,下面是代码

代码语言:javascript
复制
-(void)setup{
//IMAGE AS BUTTON
    C4Image *photoButtonImage=[C4Image imageNamed:@"icons-02.png"];
    photoButtonImage.height=NavBarHeight;
    photoButtonImage.center=CGPointMake(self.canvas.width/2, self.canvas.height-NavBarHeight/2);
    [self.canvas addImage:photoButtonImage];
    [photoButtonImage addGesture:TAP name:@"tap" action:@"tapped"];
}
-(void)tapped {
    C4Log(@"tapped!");
}

[photoButtonImage addGesture:TAP name:@"tap" action:@"tapped"];方法应用于self完全可以工作,但如果将它添加到图像(PhotoButtonImage)中,则不会发生任何事情。我研究了两个答案(Gesture controls crash when calling methods on C4WorkSpace.mHow do I apply a UILongPressGestureRecognizer to a shape in C4?)。他们是为形状,我认为它应该是同样的工作对图像,但显然它不.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-17 17:44:40

亚当的回答对手势是正确的。通常,当您需要对象的一些额外的/自定义功能时,您希望使用它们。

但是,在您的示例中,您只想将图像作为按钮使用,您可以通过以下操作来实现这一点,而不必使用手势:

代码语言:javascript
复制
[self listenFor:@"touchesBegan" fromObject:photoImage andRunMethod:@"aMethod"];

其原因是,默认情况下,所有 C4对象都会发布基本的触摸通知。

票数 1
EN

Stack Overflow用户

发布于 2013-10-17 14:12:08

正在发生的事情是,当您将手势添加到C4Image时,您调用的是C4Image的抽头方法,而不是您在C4Workspace.m中提供的抽头方法。您需要做的是让C4Image在被点击时发送通知,然后让C4Workspace.m侦听通知并触发tapped方法。

代码语言:javascript
复制
[photoButtonImage addGesture:TAP name:@"tap" action:@"tapped:"];
[self listenFor:@"tapped" fromObject:photoButtonImage andRunMethod:@"tapped"];

添加手势时,最好添加冒号,以便调用带有参数的方法。这将保证通知按您的意愿工作。

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

https://stackoverflow.com/questions/19420929

复制
相关文章

相似问题

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