在没有动画的情况下在iPad上解雇UIActionSheet

时间:2013-05-26 00:22:37

标签: ipad animation uiactionsheet uipopover

我的iPad应用程序底部有一个水平滚动的UITableView,当用户点击其中一个单元格时,我会弹出一个UIActionSheet,允许他们在两个选项之间进行选择。

该部分工作正常,但在解除动作表时遇到两个UI问题。

1)当用户点击UIActionSheet外部而不是另一个UITableViewCell时,我想立即取消选择该单元格,然后关闭UIActionSheet,或同时淡出它们。但是,当我实施

  • (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex

要做到这一点,它仍会导致动作表在取消选择单元格之前逐渐淡出,这看起来有点奇怪。无论我是通过获取该单元格并手动更改外观还是重新加载表,我都会调用[self.tableView deselectRowAtIndexPath:self.tableView.indexPathForSelectedRow animated:NO]。即使我在创建它时保持对UIActionSheet的引用(例如self.actionSheet)并在调用willDismissWithButtonIndex时将其设置为hidden或nil,它仍然以这种方式运行。

2)如果用户点击UIActionSheet外部但选择另一个TableViewCell,我想立即将UIActionSheet转移到另一个单元格。然而,现在,它只是缓慢淡出,然后用户必须再次点击新单元格,以便为该单元格调出UIActionSheet。

有人对此问题有任何建议或经验吗?

一切顺利,

托比

1 个答案:

答案 0 :(得分:0)

从UIActionSheet类引用:

对于在iPad设备上运行的应用程序,操作表通常显示在以适当方式锚定到起始视图的弹出窗口中。 弹出窗口外的点击会自动关闭操作表,任何自定义按钮内的点击都会自动关闭。您也可以通过编程方式将其解除。

因此,当用户点击外部以选择应用中的其他单元格时,我认为您无法更改此UIActionSheet的行为。您可能只想创建自定义弹出视图以解决您的两个问题。

相关问题