我有一个正在工作的UIAlertController
,但我想将alert.view
向左旋转90度。
我该怎么做?我的代码如下:
let alert = UIAlertController(title: "", message: "Message Sample", preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "Okay", style: .Default){(action)->() in })
presentViewController(alert, animated: true) {}
我试着补充道:
alert.view.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2))
但它不起作用。
谢谢大家!
4条答案
按热度按时间pod7payv1#
使用此代码:
您可以实现这一点:
1wnzp6jl2#
我认为这可能会在FaceID中出现得更频繁。我必须解决这个问题,因为我有一个横向模式的应用程序,但当用户在iPhone上启动应用程序时,或者当他们必须使用FaceID验证应用程序时,他们通常处于纵向模式。因此,我希望根据用户手持手机的方式显示警报。我的解决方案是如下扩展UIAlertController类:
eagi6jfj3#
如果您的应用程序支持landscaneRight、landscaneLeft和default(作为纵向),则可以尝试以下操作
这将根据屏幕旋转来旋转警报视图,而不会产生任何UI动画问题。
oymdgrw74#
Nico Nierenberg的回答启发了我,但我用一些Core Animation逻辑对它进行了扩充,这个额外的逻辑是使警报在其显示和消除动画期间旋转所必需的(Nico最初的实现只是隐藏警报,这与为
animated
传递false
的外观相同)。我还添加了一个通知侦听器,它可以在设备方向改变时调整旋转。
这个实现假设你的原始演示是纵向的,如果你的演示控制器可以在其他方向,你需要修复
radians
方法。以下是整个课程:
您可以像这样调用它: