【发布时间】:2014-07-10 08:32:39
【问题描述】:
我想知道是否有人知道 UIAlertViews 和 UIAlertControllers 不会在 iOS 8 上滚动这一事实的良好解决方案?这是一个例子:
[[[UIAlertView alloc] initWithTitle:@"Test" message:@"long string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong
string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\nlong string\n
long string\nlong string\nlong string\nlong string\nlong string\nlong string\n
long string\nlong string\nlong string\nlong string\nlong string\nlong string\n"
delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil] show];
在 iOS 7 和 8 上运行该代码会产生以下结果。 (将其更改为 UIAlertController 没有区别)。
iOS 8:
iOS 7:
如您所见,它在 iOS 7 上清晰地滚动,但在 iOS 8 上却没有。我在这里缺少某些属性还是只是一个 beta 错误?
【问题讨论】:
-
它可能是一个新的实现......或者一个错误。警报视图实际上不应该用于显示长字符串......可能是苹果试图加强对 HIG 的遵守?
-
如果真的是这样,为什么他们从第一次引入滚动就一直提供滚动功能?此外,也没有好的选择,唯一的选择是以模态方式呈现视图控制器,在这种情况下,这太过分了。
-
好吧,他们可以根据需要随时更改它...整理用户体验?我不知道。可能只是像您说的那样是一个错误...编写您自己的“警报视图”?不会很困难。如果你没有时间,当然也有第三方的。
-
我在 iOS 8 中只做了一点。正是因为这个原因,等到 Beta 4!
-
是的,我猜这是一个“观望”案例。如果他们删除了在屏幕上显示信息的唯一有用方式而不完全覆盖 UI,那将是荒谬的。此外,关于 HIG,您可以看到如果文本太长,按钮会消失(也是 HIG 违规,但这不是我的意思)导致警报视图卡住并强制重新启动应用程序。不是很好的用户体验;)
标签: ios objective-c