加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – UIViewController透明背景

发布时间:2020-12-14 18:08:34 所属栏目:百科 来源:网络整理
导读:我正在以这种方式创建一个viewcontroller: UIStoryboard *sb = [UIStoryboard storyboardWithName:@"PhotoViewControlleriPhone" bundle:nil]; UIViewController *vc = [sb instantiateInitialViewController]; vc.view.backgroundColor = [UIColor clearCo
我正在以这种方式创建一个viewcontroller:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"PhotoViewControlleriPhone" bundle:nil];
                                UIViewController *vc = [sb instantiateInitialViewController];

                               vc.view.backgroundColor = [UIColor clearColor];
                               self.modalPresentationStyle = UIModalPresentationCurrentContext;

                               [self presentModalViewController:vc animated:NO];

                               vc.view.frame = CGRectMake(imageView.frame.origin.x,imageView.frame.origin.y + 64,imageView.frame.size.width,200.000000);

                               vc.view.layer.cornerRadius = 10; // this value vary as per your desire
                               vc.view.clipsToBounds = YES;

viewcontroller不是全屏,因此您仍然可以看到前一个.我想能够看到它,但锁定它.就像当你使用ios facebook分享时,你会看到背景,但它会变得更暗,你无法与之交互.我怎样才能做到这一点?

解决方法

我相信问题是你使用-presentModalViewController:animated:来显示它.使用该方法带有关于您正在托管的视图控制器的一些假设;它所做的一个假设(至少在iPhone型设备上)是视图控制器占据整个屏幕并且是不透明的.

要解决此问题,请尝试手动将模态视图控制器的视图添加到当前视图控制器的视图中.您需要将视图控制器层次结构设置为与视图层次结构匹配,因此您的代码将如下所示:

[self addChildViewController:vc];
[self.view addSubview:vc.view];

您需要调整传入视图的帧以将其定位在新的超视图中,但这样可以让您更自由.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读