我有一个标签栏控制器,在触摸视图导航右键之一的按钮时,我想在其上加载(导航控制器+视图)。位于其顶部的视图是半透明的,我应该能够在tabbar控制器中看到内容。
我尝试使用[self.tabbarcontroller.view addSubview:navController];
我工作得很好而且工作正常。但是当我试图在横向视图中做同样的事情时,它只占据了屏幕的一半。应该做什么 ?有没有办法解决这个问题
我可以使用该窗口加载我的新视图吗?它会占据整个屏幕吗?我尝试过autoresize mask并没有效果
答案 0 :(得分:2)
navController / tabbarcontroller的界限是什么?你正确地设置窗口的那个吗?
您可以轻松输出:
NSLog(@"navController bounds: %@",NSStringFromCGRect(navController.view.bounds));
答案 1 :(得分:1)
你的意思是addSubview:navController.view
?我认为您不能将视图控制器视为视图。
通常,在框架管理的类之外使用UIViewController时需要小心。 UIKit会自动处理它所知道的视图控制器的viewWillAppear / autorotation之类的东西,但是它不知道你的视图随机添加为子视图的VC。
编辑:如果您需要的是它看起来是透明的,您可以使用类似
的内容UIGraphicsBeginImageContextWithOptions(tabBarController.view.size, 0, 0);
[tabBarController.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
然后使用img作为视图背景。它不会在背景中为这些东西设置动画,但如果您不需要它,那么很多比将大量透明视图堆叠在一起更快。