UIButton在自定义UIView中的问题
我有一个简单的(基于视图的)应用程序。我想要在自定义UIView上点击我的按钮,移动到该视图的某个位置(例如指向10,10)。UIButton在自定义UIView中的问题
- 我的自定义UIView是DrawView(DrawView.h和DrawView.m)。
- RotatorViewController(h。和.m)。
我添加到我的DrawView一个UIButton,连接插座我的DrawView和UIButton。我在RotatorViewController和@selector中添加UITapGestureRecognizer(tap :)。 这里是UITapGestureRecognizer
的代码- (void)viewDidLoad { [super viewDidLoad]; UIGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:drawView action:@selector(tap:)]; [drawView addGestureRecognizer:tapGR]; [tapGR release]; }
@selector(自来水:)
- (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'
登录我需要你的帮助
你说:
UITapGestureRecognizer在 RotatorViewController和 @selector(自来水:)
,你写道: UIGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:drawView action:@selector(tap:)];
这意味着在drawView函数委托执行的操作,但你在RotatorViewController
定义选择tap:
。
我觉得你只是通过self
UIGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
的错误表示DrawView
类的实例不以tap:
消息作出响应。我看到你已经在DrawView.m
中定义了tap:
方法,但是你有没有在头文件中声明那个方法?像这样:
DrawView.h
@class UITapGestureRecognizer;
@interface DrawView {
UIButton *myButton;
}
- (void) tap:(UITapGestureRecognizer *)gesture;
@end
没有,似乎选择没有必要在头文件中声明替换目标drawView
。谢谢你的想法! –
2011-02-23 19:46:55
愚蠢的错误,非常感谢!它工作正常。 – 2011-02-23 19:45:46
不客气:) – klefevre 2011-02-23 19:54:44