使用UIModalFormSheet演示,但允许后面的视图拦截触摸

时间:2013-11-18 22:44:56

标签: ios presentmodalviewcontroller

我使用UIModalFormSheet样式以模态方式呈现颜色选择器元素的视图控制器。在iPad上,控制器不会占用整个屏幕,后面的视图会变暗并禁用用户交互。这很好,唯一的问题是我希望用户能够“挖掘”颜色选择器。换句话说,颜色选择器元件外部的任何抽头都将关闭颜色选择器。我可以在颜色选择器的视图中添加手势识别器或不可见的“点按”按钮,但这显然不会在该视图之外进行任何触摸。向后面的视图添加手势识别器不起作用,因为我假设用户交互被自动禁用。我的代码看起来像这样:

[_colorPicker setModalPresentationStyle:UIModalPresentationFormSheet];
[self presentViewController:_colorPicker animated:YES completion:nil];

有任何变通方法吗?我可以用不同的方式呈现它,但我喜欢它的外观和作用,除了这个问题。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我最后通过改变我的设计来解决这个问题。在iPhone上,colorPicker以模态呈现,占据整个屏幕,并有一个“取消”按钮可以解除。在iPad上,colorPicker会从触发它的按钮呈现在UIPopoverController中。无论如何,我喜欢这种看起来更好,并且它内置了“tap-out-to-dismiss”功能,因此效果很好。