如果你想使用故事板来实现它,这很简单。
我附上示例代码
1 - 在 Storyboard 中创建您的自定义 PauseViewController。使用全屏视图,黑色,Alpha 0 和包含暂停控件的子视图。创建对应的 .h 和 .m 文件
2 - 添加并链接您的控件(UIButtons)。添加这样的关闭方法。此方法将从层次结构中删除视图,并使其在关闭时更改 alpha 不可见。
- (IBAction)dismiss:(id)sender {
[UIView animateWithDuration:0.3f animations:^{
self.view.alpha = 0.0f;
} completion:^(BOOL finished) {
[self.view removeFromSuperview];
[self removeFromParentViewController];
}];
}
3 - 创建自己的 segue 类的子类 UIStoryboardSegue。然后,用类似这样的东西覆盖 perform 方法。这只需使用两个控制器(源和目标)并将目标视图放在源视图上并带有动画。
-(void)perform{
UIViewController *dst = [self destinationViewController];
UIViewController *src = [self sourceViewController];
// add the view to the hierarchy and bring to front
[src addChildViewController:dst];
[src.view addSubview:dst.view];
[src.view bringSubviewToFront:dst.view];
// set the view frame
CGRect frame;
frame.size.height = src.view.frame.size.height;
frame.size.width = src.view.frame.size.width;
frame.origin.x = src.view.bounds.origin.x;
frame.origin.y = src.view.bounds.origin.y;
dst.view.frame = frame;
[UIView animateWithDuration:0.3f animations:^{
dst.view.alpha = 0.5f;
}];
}
4 - 链接您的 segue,选择自定义并插入自定义 segue 类名称。
呸呸呸!
如果您需要其他详细信息,请查看示例代码或添加评论。