Ios 调整UIView的大小以为ad单元留出空间
我试图在UIViewIos 调整UIView的大小以为ad单元留出空间,ios,objective-c,uiview,uiwindow,react-native,Ios,Objective C,Uiview,Uiwindow,React Native,我试图在UIViewRCTRootView的子类之上添加一个广告单元。这会将RCTRootView向下移动约50px。这是我目前的尝试 RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"test"
RCTRootView
的子类之上添加一个广告单元。这会将RCTRootView
向下移动约50px。这是我目前的尝试
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"test"
launchOptions:launchOptions];
CGRect frame = rootView.frame;
frame.size.height -= 50;
rootView.frame = frame;
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.autoresizesSubviews = YES;
UIViewController *rootViewController = [[UIViewController alloc] init];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
return YES;
这是一个React原生项目,所以使用故事板。如何调整rootView的大小
如何在根视图(Ad单元)上方的UIWindow中实例化并附加viewController?试试这个方法可能会有所帮助,但解决这个问题可能比更改屏幕大小更好
UIViewController *rootViewController = [[UIViewController alloc] init];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
rootViewController.view.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height-50);
您可以使用容器视图控制器将两个视图控制器组合成一个
UIViewController* containerViewController = [[UIViewController alloc] init];
UIViewController* containerViewController = [[UIViewController alloc] init];
在您的例子中,它们将是rootViewController
和adViewController
,在本例中,我将它们称为firstChildViewController
和secondChildViewController
)
firstChildViewController
应位于secondChildViewController
之上,则首先添加secondChildViewController
,然后添加firstChildViewController
以创建右侧子视图层次结构)
不要忘记布局子视图控制器的视图(TODO设置在需要的位置)。
要布局容器视图,控制器的视图将其信任为常规的UIView
,并使用首选方法设置其坐标和大小(自动布局或手动布局)
例如,若要将视图向下移动50px,您应该将俯视图的底部约束为俯视图的顶部,将俯视图的高度约束为50
containerViewController
设置为window
的rootViewController
:
[window setRootViewController:containerViewController];
希望它能有所帮助。正如mihir mehta所建议的,故事板是在iOS中处理UI最方便的方法。这里是一个链接,您可以从中学习添加故事板。
还有很多关于这个主题的教程。我建议使用自动布局。比这简单得多。关于如何开始向项目中添加故事板的建议?米希尔?你的代码的结果是什么?你能分享屏幕截图吗!我可能遗漏了一些明显的东西,但如果这是一个React原生项目,为什么要在Obj-C中这样做?这似乎是RN和JSX非常方便的类型。
[window setRootViewController:containerViewController];