我有一个UIImageView
的子类,我需要知道什么时候被触及。 (下面的完整代码。)我找到并阅读了this和this。它们有点温和,但都没有真正起作用。不仅没有调用我的touchesBegan:withEvent:
方法,还按下了图像后面的按钮。
这是我的代码:
标题文件:
@interface MathKeyboardKey : UIImageView
{
}
@end
实施档案:
@implementation MathKeyboardKey
- (id)initWithImage:(UIImage *)image
{
if (self = [super initWithImage:image])
{
//init here
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"-- I AM TOUCHED --");
}
- (void)dealloc
{
[super dealloc];
}
@end
致电代码:
{
self.userInteractionEnabled = NO;
mathKeyboardAccess = [[MathKeyboardKey alloc] initWithImage:[UIImage imageNamed:@"mathKey.png"]];
CGRect frm = mathKeyboardAccess.frame;
frm.origin = CGPointMake(80, 171);
mathKeyboardAccess.frame = frm;
mathKeyboardAccess.userInteractionEnabled = YES;
[self addSubview:mathKeyboardAccess];
}
此视图将作为另一个(MathKeyboard
)的子视图添加。 superview无法启用用户交互,因为它覆盖了另一个视图(系统键盘)。当我尝试将MathKeyboardKey
添加到系统键盘视图时,它不会显示。如果我尝试使用UIButton,它就不会出现,无论我把它放在哪个视图中。
如果不明显,问题是:如何检测此UIImageView
子类中的触摸?
答案 0 :(得分:1)
self.userInteractionEnabled = NO;
由于您已禁用父视图的用户交互,因此子级如何接收任何交互?删除此行。