c# - iOS 加载覆盖不覆盖整个屏幕
问题描述
我试图在自动登录 HTTP 调用期间显示覆盖。我找到了这段代码,它似乎已经过时了,但没有发现任何更新的东西。
无论如何,覆盖显示但没有按预期覆盖整个屏幕。
调用代码是这样的:
AppDelegate.FinishedLaunching
var avc = new AutoLoginViewController();
var navController = new UINavigationController(avc);
AutoLoginViewController.ViewDidLoad
var bounds = UIScreen.MainScreen.Bounds;
// show the loading overlay on the UI thread using the correct orientation sizing
loadPop = new LoadingOverlay(bounds, NSBundle.MainBundle.GetLocalizedString("connecting"));
View.Add(loadPop);
但结果如下:
如果我在 LoadingOverlay 构造函数中设置断点,我可以看到屏幕边界(iPhone 6)很好:
{{X=0,Y=0,宽度=375,高度=667}}
public class LoadingOverlay : UIView
{
public LoadingOverlay(CGRect frame, string text) : base(frame)
{
// configurable bits
BackgroundColor = UIColor.Black;
Alpha = 0.75f;
AutoresizingMask = UIViewAutoresizing.FlexibleDimensions;
...
}
}
显然 UIView 宽度不正确。
因为我们在 2020 年,也许还有另一种方式。
任何帮助表示赞赏。
编辑:该应用程序在 iPhone 8 iOS 13.3 模拟器上中断,所以我不能说这是否与特定的屏幕尺寸(在我的情况下为 1x)有关。
解决方案
原因 :
貌似你没有设置LaunchImage,所以无论是模拟器还是真机,bounds的值都是静态值。
解决方案:
最简单的方法是将覆盖的大小设置为 View 的边界。
var bounds = View.Bounds;
或者您可以设置不同屏幕的 LaunchImage 的所有尺寸。
推荐阅读
- apache-flink - Flink CEP 事件未触发
- python - 如何确定一个点是否包含在 matplotlib 的 n-gon 中?
- django - 如何在模板中进行样式设置,因为我的样式在 Django 模板中不起作用?
- c# - 返回干净的 json Actionresult 控制器
- c# - 如何在 Web api 的并发队列中处理未发送的消息
- javascript - 使用 eventlistener("click" , function(array)) 将元素推入数组
- ios - 如何从 iOS 的电话设置中检查用户是否启用/检查了自动填充凭据提供程序扩展?
- swift - 我想从 Firebase 的云存储中获取随机元素并在 SwiftUI 上显示
- reactjs - 使用 react-router 从路由中选择选项卡
- javascript - 使用生态系统 JS 文件设置 PM2 LogRotate