我创建了一个简单的弹出窗口,但问题是当我试图设置弹出窗口然后它无法正常工作
注意:我正在使用Autolayout
这是我的代码
mpop = [[MPopUp alloc] init];
mpop.frame = CGRectMake(((self.view.frame.size.width) -
mpop.frame.size.width) / 2,
((self.view.frame.size.height) -
mpop.frame.size.height) / 2,
mpop.frame.size.width,
mpop.frame.size.height);
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0,
0,
self.view.frame.size.width,
self.view.frame.size.height)];
mpop.overlay = newView;
UIVisualEffect *blurEffect;
blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
UIVisualEffectView *visualEffectView;
visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
visualEffectView.backgroundColor = [UIColor blackColor];
visualEffectView.alpha = 0.4;
visualEffectView.frame = newView.bounds;
[newView addSubview:visualEffectView];
newView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:newView];
[mpop showInView:self.view animated:YES];
它在人像模式下工作正常,但不在风景中工作可以帮助我吗?
答案 0 :(得分:1)
您需要为此情况添加自动布局限制。我已经为您的示例添加了代码并在GitHub上提供了参考资料。在下面的链接中找到它。我必须在视图controller.m文件和view.m文件中的2个文件中添加代码。
https://github.com/mahesh-agrawal/Autolayout-Popup
通过运行来检查。如果要使宽度或高度动态化,可以使用下面的计算替换硬编码值。
[[UIScreen mainScreen] bounds].size.width * (290.0/320.0)
代替290.0