使用Interface Builder的主题警报

UIAlertController可以通过许多方式进行配置,但是它不是主题化的。

有很多库可以代替UIAlertController ,并且可以作为主题使用

但是,如果您需要的只是一个带有标题,消息和2个按钮的“简单”模式警报,该怎么办? 为此值得引入并配置整个库吗?

Interface Builder中的一个简单的主题警报

没有! 让我们自己动手做一件事情,用任何额外的行李就可以完成工作。 这是Interface Builder中的外观:

深色背景视图是警报的父视图。 它的黑色背景的alpha设置为0.5。 不需要,但是它有助于集中用户的注意力,使警报下的所有内容变暗。

其余的警报使用“自动布局”以简单的方式进行布局。 两个按钮的宽度相等,并且有预定的宽度和边距。 警报本身位于其父级的中心。

使其反应?

我对此警报的使用案例之一是在警报消息中显示活动计时器。 有多种方法可以执行此操作,但是我喜欢在警报出口上使用反应性绑定(使用Bond和ReactiveKit)。 为此,我们将为它配置一个视图模型,并根据视图模型的更新自动更新文本。

包起来

您无需导入大型库或编写大量代码即可创建两按钮式主题主题模式警报。 您可以改为定义一个新类,使用情节提要并根据需要对其进行完全布局,然后只需将其推入另一个视图控制器即可。