我有一个支持iOS8及更高版本的应用程序,内置Xcode 7,我使用XIB作为启动屏幕(我没有启动图像).该视图包含一个带有应用程序版本的UILabel,以及两个带有图像的UIImageViews,这两个图像都存在于Images.xcassets中:一个徽标和一个启动图像.
启动应用程序时,UILabel和徽标图像显示正确,但如果我在带有iOS9的iPad Air 2上运行应用程序,则不会显示启动图像.我已经在Air和Mini上测试过运行iOS8,以及适用于iPad 2,iPad Air和iPad Air 2的iOS9模拟器,所有这些都能正确显示图像.
我跑了一些基本的故障,看看我能想出是怎么回事,但我一直没能解决这个问题,我可以说的工作的形象而这失败的一个之间看到的唯一区别是,当我把它添加到资产...
这是我所知道的简要说明:
启动图像的UIImageView位于正确的位置,大小正确.我可以告诉这个,因为我将它的背景颜色设置为绿色只是为了确保.视图在那里,但图像不会出现.所以我假设这个观点不应该受到责备.
将启动图像的UIImageView设置为也使用徽标图像可使徽标图像显示在视图的正确位置.这也让我认为这个观点不应该受到指责.
我在启动图像视图中使用的UIImage在应用程序的其他地方使用,在其他视图中显示得很好(徽标图像也在应用程序的其他地方使用,看起来很好).所以我假设图像有效并且让它出现在其他视图中不是问题.
我已经确认xcassets文件中徽标和启动的UIImages设置是相同的.它们设置为通用,任意宽度和高度,多个比例因子,默认呈现.有一个区别 - 徽标有1x,2x和3x刻度,而初始图像只有1x和2x,但我也试过在UIView中只使用1x,1x和2x值的UIImages它们可以工作(如果它们是不久前加入了该项目).
将另一个不同大小或格式的图像(PNG和JPG)添加到我的xcassets并在UIImageView中使用该UIImage作为启动图像也无法显示.
将另一个UIImageView添加到XIB文件并为其分配已在xcassets中运行的UIImage,图像将显示在加载屏幕中.
复制和重命名用于徽标的图像文件并将其添加到项目中,然后在启动视图中使用该UIImage也无法显示.
我已经尝试清理项目,重新启动开发机器,并从Air 2中删除应用程序并重新安装它以防万一出现问题.
最后三个步骤让我相信,在项目文件的生命周期中的某个点之后添加图像存在一些问题.虽然我昨天更新到Xcode 7,但最初在Xcode 6中添加了启动图像,但几个月前添加了徽标图像(也在Xcode 6中添加).
我查看了json文件中的徽标图像和启动图像,它们看起来格式相同.我还浏览了pbxproj文件,寻找差异,我看不到任何差异.
所以我想知道是否有人知道为什么发射屏幕可能无法显示我在Air 2上特别添加的这些新图像?我一直在阅读的有关未出现的图像的其他问题似乎与启动图像或与具有关联类的XIB文件中的图像有关,这两者似乎都不相关.
我现在非常沮丧。我将 Xcode 升级到版本 12 并在 iOS 14 上测试了我的应用程序。现在的问题是,我的启动屏幕只是显示为黑色。我用 iOS 13.5 设备对其进行了测试,它仍然按预期工作。我试图删除 launchscreen.storyboard 方法并在 info.plist 中添加了 Launch Screen 键,但随后图像被缩放到全尺寸。
现在我用 launchscreen.storyboard 进行了一些测试,我发现了一些东西。
您是否遇到过 iOS 14 和故事板方法的问题?
如果是,你是如何解决的?
我用Google搜索了两个单词,却找不到任何东西.我从来没用过它.虽然我们有main.storyboard,但有没有必要呢.
我用一组发射图像的我的应用程序,并注意到,当我有一个电话,录制语音注释,或分享我的Internet连接,并把该活动在后台启动我的应用程序,启动屏幕在中心皱.有什么我可以做的让图像看起来不错,或者它只是一个标准的iOS行为?
我必须为新iPad实现分屏功能,我从Apple的doc获得了一个解决方法,以支持我的应用程序:https://developer.apple.com/library/prerelease/ios/documentation/WindowsViews/Conceptual/AdoptingMultitaskingOniPad /QuickStartForSlideOverAndSplitView.html#//apple_ref/doc/uid/TP40015145-CH13-SW1
在本文档中,请检查第2点:
提供LaunchScreen.storyboard文件(而不是像iOS 7及更早版本中那样的.png图像文件)
这就是我必须使用Launch screen.storyboard的原因.现在,拆分工作完美,但对于我的应用程序,我有单独的启动屏幕,默认纵向和默认景观.但是现在我已经采用了故事板,我无法为不同的方向定制启动屏幕.甚至我无法在Launch屏幕中编写相同的代码,否则它会给我错误.
此外,我尝试使用大小类为两个方向提供单独的图像视图,但我没有成功.
如果有人建议我如何使用不同的图像实现风景和肖像的Launch screen.storyboard,那将是很有帮助的.
1 - 我想在我的应用程序中使用LaunchScreen.storyboard
2 - 在此启动屏幕中,我需要在屏幕中央插入品牌图像
谁能帮助我?
我的设备和模拟器似乎正在缓存我的应用程序的启动屏幕!
我删除了原始的Launch Screen.storyboard并创建了我自己的XIB和swift文件,名为"StartingPointView.xib"和"StartingPointView.Swift".XIB文件包含具有蓝色背景颜色的视图.它还在应用程序图标和启动图像下的Xcode项目设置中链接.
到目前为止一切似乎都很好,但是当我将StartingPointView视图的颜色更改为黄色时,应用程序将继续使用蓝色屏幕启动,然后闪烁黄色屏幕.
蓝色来自哪里?(注意:我的UI中没有其他蓝屏,我尝试运行干净整洁的构建文件夹)
启动应用程序时,只要初始化所有资产,就会删除LaunchScreen.xib.
我想让发射屏幕保持至少1秒.
有没有办法实现这个目标?
谢谢!
我刚刚开始使用 Swift 和 SwiftUI,所以我完全是初学者。我的 SwiftUI 项目附带了一个 LaunchScreen.storyboard,我认为它会很好用,但我不知道如何使用。该应用程序加载初始 ContentView.swift,即使我用图像填充了 LaunchScreen.storyboard。有什么地方我需要指定应用程序应该先加载 LaunchScreen 然后在 2 秒后转到 ContentView 吗?
我怀疑它可能在 SceneDelegate.swift 中,但我不知道。
// Create the SwiftUI view that provides the window contents.
let contentView = ContentView()
// Use a UIHostingController as window root view controller.
if let windowScene = scene as? UIWindowScene {
let window = UIWindow(windowScene: windowScene)
window.rootViewController = UIHostingController(rootView: contentView.environmentObject(model))
self.window = window
window.makeKeyAndVisible()
}
Run Code Online (Sandbox Code Playgroud)
使用 XCode 11.2
在此先感谢您的帮助!
编辑:这确实是一个缓存问题。我删除了 ~/Library/Developer/Xcode/DerivedData/ModuleCache 目录并从模拟器和测试设备中删除了应用程序。然后重建并工作!谢谢!
launch-screen ×10
ios ×8
xcode ×4
storyboard ×3
objective-c ×2
ios10 ×1
ipad ×1
launchimage ×1
swiftui ×1
uiimage ×1
uiimageview ×1
uistoryboard ×1
xcode8 ×1
xib ×1