iOS底部弹窗标题带图标的一种实现
2020-04-30 本文已影响0人
简夕_bcb0
我在做视频通话的时候,需要先从底部弹窗让用户选择视频通话还是语音通话。首先,我想到了微信,他们的实现是这样的:

完全是自定义的实现。
我想偷懒,但是发现UIAlertAction并不是一个View,不好自定义,通过setValue添加图片,图片在最左边,很难看
代码:action.setValue(UIImage(named: icons[0]), forKey:"image")

然后我想到UIAlertController是一个UiViewController,他是有view的,我们可以随便添加自己的view。
1、先隐藏action的标题,我想到的方法是让标题颜色和背景一致:action.setValue(UIColor.white, forKey:"titleTextColor")
2、添加自定义的标题

3、最终效果

4、问题,通过设置title未白色来隐藏action的标题,在点击的时候由于背景置灰,会显示出来,只是影响不大。
5、既然如此,我们还可以不要title啊,说干就干

6、完美解决,还避免了强行设置KVC可能不被新版本兼容的风险