我在做视频通话的时候,需要先从底部弹窗让用户选择视频通话还是语音通话。首先,我想到了微信,他们的实现是这样的:
完全是自定义的实现。
我想偷懒,但是发现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可能不被新版本兼容的风险
网友评论