我遇到了一个奇怪的问题,我为 iPhone 构建的自定义控件在调试模式下构建时完美运行,但在发布模式下构建时只能部分运行。
主包装视图是的子类,UIView
它包含一行作为子视图添加的“按钮”。自定义按钮类扩展UIImageView
并使用以下签名覆盖触摸方法:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
在构建调试代码时,所有这 4 个函数都会在您期望的时间被调用,而在发布构建时,什么都不会发生。我已经登录了他们每个人,但我没有收到任何日志消息(其他日志正在工作)。
另一个有趣的事情是,我在包装视图类中覆盖了 touchesBegan/Moved/Ended 方法,它们工作正常。我尝试在包装类中注释掉这些方法,看看它是否对按钮有影响,但没有。
我也尝试将UIImageView
类更改为的子类,UIButton
但在那里遇到了同样的问题,包括像 touchUpInside 这样的任何事件。它们在调试中工作,但不是发布。
我已经尝试研究这个问题以及一般事件处理,但空手而归。有什么想法下一步该去哪里看吗?