迅捷代码段#14 — UIAlertControllerStyle

您可以在这里找到其要点!

UIAlertControllerStyle

第一个扩展位于UIAlertControllerStyle ,它返回特定样式的UIAlertController实例,即– alertactionSheet 。 所以现在我可以做这样的事情,

 让alertController = UIAlertControllerStyle 
。警报
.controller(title :, message :, actions :)

因此,我现在可以要求一个特定样式的控制器而不是在UIAlertController的构造函数中传递样式类型) (如果您已阅读以前的摘录或博客文章,现在您可能已经知道我喜欢面向扩展的apis –更加简洁易读)。

现在,任何警报还将具有与之关联的一些操作。 因此,下一个扩展名是String因为每个动作都将具有标题,并且它返回UIAlertAction的实例,

 让dismissAction =“ Dismiss” .alertAction() 
  let retryAction =“ Retry” .alertAction {/ *中的_重试逻辑* /} 

因此,我现在可以要求在String上使用UIAlertAction ,而不是将标题传递给UIAlertAction的构造函数。

就是这样,现在让我们看一下整个api,

无需创建额外的类,我们已经能够编写如此短的api来构造任何类型的UIAlertController 。 您还可以使用相同的api制作actionSheet。

PS –为了简化起见,我使用了String ,但是如果您不喜欢它,则还可以为不同的动作创建一个Enum并将其扩展为具有类似的行为!

如果您对 Swift-Snippets 的诞生感到疑惑, 或者想查看更多此类片段,可以在 这里 找到它们 😊