我有一个简单的(基于视图)应用程序 . 我想点击自定义UIView我的按钮移动到该视图内的某个位置(例如到10,10点) .
-
我的自定义UIView是DrawView(DrawView.h和DrawView.m) .
-
RotatorViewController(h . 和.m) .
我添加到我的DrawView一个UIButton,连接我的DrawView和UIButton插座 . 我在RotatorViewController和@selector(tap :)中添加了UITapGestureRecognizer . 这是UITapGestureRecognizer的代码
- (void)viewDidLoad
{
[super viewDidLoad];
UIGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:drawView action:@selector(tap:)];
[drawView addGestureRecognizer:tapGR];
[tapGR release];
}
@选择(自来水:)
- (void) tap:(UITapGestureRecognizer *)gesture {
myButton.transform = CGAffineTransformMakeTranslation(10, 10);
}
但是当我在DrawView应用程序崩溃的任何地方点击时 . 这是来自控制台的日志
2011-02-23 20:59:24.897 Rotator[7345:207] -[DrawView tap:]: unrecognized selector sent to instance 0x4d0fa80
2011-02-23 20:59:24.900 Rotator[7345:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DrawView tap:]: unrecognized selector sent to instance 0x4d0fa80'
我需要你的帮助
2 回答
你说 :
你写道:
UIGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:drawView action:@selector(tap:)];
这意味着操作在drawView委托中执行,但您在
RotatorViewController
中定义了选择器tap:
.我想你只需要通过
self
替换目标drawView
UIGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
该错误表示
DrawView
类的实例不响应tap:
消息 . 我看到你在DrawView.m
中定义了一个tap:
方法,但是你在 Headers 中声明了这个方法吗?像这样: