我看到iOS 7和8之间关于UIActionSheet的一个小的(但真的很烦人)差异。在iOS 7中,用户点击操作表中的按钮被立即选中,提供了按下哪个按钮的即时视觉反馈。 (通过"选择"我的意思是按钮的背景颜色发生变化。)但是,在iOS 8中,除非用户点击并按住操作表按钮,否则按钮在视觉上不会被选中。由于普通点击通常非常简短(并且没有保留),因此具有通常从未在iOS 8操作表中选择的按钮的效果。
用户在iOS 8中点击选项2后看到的内容:没有选中按钮,因为对话框会关闭动画。
如果用户点击并按住选项2,则该按钮最终会显示为已选中。这也是用户在iOS 7中点击后立即立即的内容。
UIActionSheet用法:
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:nil
delegate:self
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:@"Option 1...", @"Option 2", @"Option 3", @"Option 4",
nil];
[actionSheet showFromBarButtonItem: myView.optionsButton animated: YES];
请注意,操作表否则按预期运行。进行适当的动作调用等。问题只是按钮按下时缺乏视觉反馈。
我知道UIActionSheet在iOS 8中已被弃用,但是,我尝试使用UIAlertController并获得相同的结果。这似乎是一个OS范围的用户界面决定。
在iOS 7中,点击操作表中的选项时会立即产生视觉反馈。反正有没有在iOS 8中恢复这种行为?
编辑:iOS 8中的Mail中的操作表按钮演示了该行为。这是回复/转发/打印按钮。点击选项不会提供视觉反馈,但点按并按住该选项会显示。