您好、欢迎来到现金彩票网!
当前位置:秒速飞艇 > 弹窗 >

iOS开发中如何解决弹窗设计问题?

发布时间:2019-06-07 06:50 来源:未知 编辑:admin

  由于一个警告弹窗可能是一个异常,所以不应该在这上面展现任何东西。极少数情况下,当你真的需要在一个动作导致弹窗后展示一个模态视图时,应该先把弹窗关闭掉再进行展示。

  一次只展示一个弹窗。展示多个弹窗会让交互变得杂乱并让人产生疑惑。千万不要展示一个级联或者有层次结构的弹窗,一个从另一个里面产生的那种。如果你需要展示一个新的弹窗,首先关闭已经弹出的那个。

  在横向水平的普通环境和全屏紧凑的环境下具有弹窗样式的视图控制器都应该呈现为弹窗。具有操作列表样式的UIActivityViewController和UIAlertController都遵守相同的规则:展示为弹窗或者一个上拉式表。所以如果一个弹窗展示一个活动视图控制器或者一个操作列表到底会发生什么?这个人机交互指南文档的说法好像有点矛盾。

  在iOS 9页面的一个相关说明里,我们注意到在一个表单的视图控制器展示了一个填充了这个表单的UIActivityViewController,想知道这是不是一个我们之前没有留意到的默认行为呢?又或者它是不是一个我们可以自定义实现的东西?

  一般,UIActivityViewController会在常规宽度下展示为弹窗,在紧凑宽度下变成一个透明的表。但是如果一个常规宽度的视图控制器要从一个紧凑宽度的视图控制器里展示会怎么样呢?这种情况会在一个有表格或者弹窗的modalPresentationStyle的视图控制器要在iPad上展示,或者它是一个使用了overrideTraitCollection属性的自定义展示控制器,然后这个控制器展示了一个UIActivityViewController。

  首先我们来看看UIAlertController。图中根视图控制器(青色)用弹窗样式(下方,通过切分视图行为以作参考)展示了第二个用表单样式(上方)的视图控制器(粉色)。然后第二个视图控制器展示了一个操作列表样式的警告控制器。

  虽然我们想要用列表的展示样式去展示操作列表(而不是弹窗),但因为关注点分离的优势,我设置了警告控制器的popoverPresentationController.sourceView和popoverPresentationController.sourceRect,视图控制器不应该对它怎么展示作出假设。它应该在app的其他部分进行全屏展示,视图控制器不应该控制这些行为。

  原来只读取警告控制器的popoverPresentationController属性会导致即使是从一个紧凑宽度环境下呈现它也会展示为一个弹窗。如果你想这么做,请一定要确保好视图控制器展现的前后环境,因为如果你想从常规宽度的环境展现一个没有设置弹窗源码的警告控制器,UIKit就会抛出一个异常。切记在展现触发的时候即使呈现视图控制器是在一个紧凑宽度环境下,当展示被激活的时候它还是有可能发生改变。

  用UIActivityViewController做同样的事情,并指定弹窗源码信息,出现下面的情况:

  不同于页面的行为,我发现表单把这个活动视图控制器展示为一个弹窗,弹窗将活动视图控制器展示在表单上。这是在iOS 10的新行为,iOS 9里,是从另一个弹窗展示一个弹窗。

  我们发现当UIKit的视图控制器是从一个展示在常规宽度环境的紧凑宽度的环境中展示时行为会变得很混乱。弹窗展现的一般规则是在常规宽度下展示为弹窗,在紧凑宽度下为全屏(尽管结合当前上下环境更有意义)。操作列表和活动视图控制器的展示有点像弹窗的展示,但不要完全按照一般的规则来展示。

  实际的行为看起来像是和人机交互指南说的一样,并很大程度上忽略了特征集合的Size类。UIKit不会在操作列表的异常警告上展现一个弹窗。Size类并不能控制所有的东西。

http://creativeresumes.net/danchuang/242.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有