我有一个 UIView 子类,一旦我单击导航栏按钮就会显示。我试图在 iphone 中模仿 UIPopover 类型的 View 。
我坚持的事情是我必须在框外触摸时删除 subview 。
有什么建议么?
最佳答案
当您定义弹出 View 时,您必须定义它的可见矩形(框架)。
在您的主视图 Controller 中,当用户点击屏幕时,检索触摸位置并检查该点是否未包含在您的弹出框架中。
这只是一个例子来说明这一点:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *aTouch = [touches anyObject];
if (aTouch.tapCount == 1)
{
CGPoint p = [aTouch locationInView:self.view];
if (!CGRectContainsPoint(yourpopupview.frame, p))
{
// dismiss the popup
}
}
}
我希望它会帮助你。
关于iphone - 我的 subview 之外的触摸事件应该导致 subview 消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7403022/