自定义 UIActionSheet 是一个 UIActionSheet 的实现,它支持在动作表中插入一个可点击的 UIView 作为子视图。这个功能在 Apple 提供的 UIActionSheet
类中是不可能的,因为动作表会捕获其子视图的触摸事件,尽管触摸发生在动作表按钮之外。
这个自定义 UIActionSheet 的示例用途包括在动作表中添加更多功能,而不仅仅是提供带有 "OK" 和 "Cancel" 按钮的消息:添加 UIDatePicker、添加其他选择器或添加开关只是您可以开始使用此新动作表的途径。
最终,将此实现与其他网络上的解决方案区分开来的是,它尽可能多地使用了 Apple 的内置功能,而不是像互联网上其他解决方案那样,只需简单地模拟了 UIActionSheet 的功能。
以下是一些与该存储库一起伴随的演示应用的截图。
您可以自由下载此存储库,并在您的项目中使用 CustomUIActionSheet.h
类。在您的视图控制器(或实例化动作表的任何地方),确保将您的 UIView 添加到 CustomUIActionSheet
实例的子视图,并将原点的 y 坐标设置为在动作表按钮之上。
此项目由 Constant Contact 发布,署名于 MIT 许可。
关于所使用的击中测试方法的功劳,归功于Stackoverflow这个问题中最受好评的答案:http://stackoverflow.com/questions/11770743/capturing-touches-on-a-subview-outside-the-frame-of-its-superview-using-hittest