我正在设计一个自定义警报,为此我使用了在场景底座中设计的视图,其中包括故事板文件https://www.dropbox.com/s/dhk5rrme1j2g89g/Main.storyboard?dl=0的约束和下拉框链接-
现在,我通过以下代码添加视图:
@IBAction func forgotpassword(sender: AnyObject)
{
blurEffect = UIBlurEffect(style: .Dark)
blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = self.contentview.bounds
blurEffectView.autoresizingMask = [.FlexibleWidth,.FlexibleHeight]
AlertVieww.frame = CGRectMake(20, (self.navigationController?.navigationBar.frame.origin.y)! + (navigationController?.navigationBar.frame.height)! + 20, blurEffectView.frame.width-40, self.AlertVieww.frame.height)
AlertVieww.autoresizingMask = [.FlexibleHeight,.FlexibleWidth]
blurEffectView.addSubview(self.AlertVieww)
[self.scrollview.setContentOffset(CGPointZero, animated: false)]
self.navigationController?.navigationBarHidden = true
UIView.transitionWithView(self.view.window!, duration: 1.0, options: UIViewAnimationOptions.TransitionFlipFromBottom, animations:
{
self.contentview.addSubview(self.blurEffectView)
}, completion: { finished in
self.scrollview.scrollEnabled = false
})
}
我将发布以下场景以及simmulator的屏幕截图-
1.当simmulator处于potrait模式时,我要触摸警报按钮-
Potrait中的模拟器-
然后我将其旋转到风景-
2.当simmulator处于横向模式时,我要触摸警报按钮
横向仿真器-
然后我将其旋转为potrait ****(问题出在这里)**-**
此外,我的用户与“发送”和“取消”按钮的交互都被禁用。
如何解决以上问题?如何将Alertview固定在屏幕上的正确位置。 编辑我也尝试了对我的问题https://stackoverflow.com/a/34610391/5395919的投票最多的答案,但是它不能解决我的问题。
最佳答案
将setTranslatesAutoresizingMaskIntoConstraints
设置为true
来自docs:
默认情况下,您对任何视图的属性都设置为true
以编程方式创建。如果您在Interface Builder中添加视图,
系统会自动将此属性设置为false。
blurEffectView.autoresizingMask = [.FlexibleWidth,.FlexibleHeight]
blurEffectView.setTranslatesAutoresizingMaskIntoConstraints(true)
AlertVieww.autoresizingMask = [.FlexibleHeight,.FlexibleWidth]
AlertVieww.setTranslatesAutoresizingMaskIntoConstraints(true)