0

我的 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。

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

一切顺利,

托比

4

1 回答 1

0

从 UIActionSheet 类参考:

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

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

于 2013-05-26T16:10:51.217 回答