ios开发中怎么把全屏view加到window上面

ios开发中怎么把全屏view加到window上面,第1张

下面是比较严谨的获取方法:

- (UIWindow *)lastWindow

{

NSArray *windows = [UIApplication sharedApplication].windows

for(UIWindow *window in [windows reverseObjectEnumerator]) {

if ([window isKindOfClass:[UIWindow class]] &&

CGRectEqualToRect(window.bounds, [UIScreen mainScreen].bounds))

return window

}

return [UIApplication sharedApplication].keyWindow

}

WindowManager中有个添加View的函数

public void addView(View view, ViewGroup.LayoutParams params)

Window中有个添加View的函数:

public void addContentView(View view, ViewGroup.LayoutParams params)

弄清楚这两个类和这两个函数的作用设计到Android整个Surface系统,这里不详述,只作说明,供自己记录。

事实上,这两个函数是Activity上显示View至关重要的控制函数,它们在框架层已经有了明确的分工。查看这两个函数的调用过程可以发现addView的调用是针对ViewRootImpl的,也就是它添加的View相当于最底层的PhoneWindow.DecorView;而addContentView最终指向了ViewGroup.addView(childView)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11620956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存