我正在使用Xamarin Forms制作一个带有启动画面的跨平台应用程序。我的启动画面设计只是一个居中的图像,带有单色背景,这样启动我的应用程序的iOS和Android设备都可以无缝地过渡到我的Xamarin Forms共享代码。一旦我的Xamarin Forms应用程序启动,我就会将用户放在一个与启动画面布局匹配的ContentPage上。从这个页面,我运行我的应用程序的所有启动任务。
在Android上进行了一些修改后,我能够禁用启动器和应用程序之间的淡入淡出动画。现在,我想在iOS上做同样的事情。
与Android类似,iOS的LaunchScreen.stroyboard在默认情况下过渡到主应用程序时有一个淡出动画。我想知道如何禁用动画,以便我可以有我想要的闪屏过渡。
我尝试使用Swift编辑器助手,但每次我用LaunchScreen.storyboard打开它时,它都显示“No Assistant Results”。接下来,我尝试用源代码编辑器打开LaunchScreen.storyboard。这样我就可以看到代码了,但是,我不确定我需要添加什么值或在哪里添加它才能禁用动画。
下面是我的LaunchScreen.storyboard源代码:
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="olI-5Z-Ti1">
<device id="retina6_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="k5D-YV-QzF">
<objects>
<viewController id="olI-5Z-Ti1" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="g5H-NR-ohv"/>
<viewControllerLayoutGuide type="bottom" id="Aaz-be-cI5"/>
</layoutGuides>
<view key="view" userInteractionEnabled="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="Ju3-CL-BWr">
<rect key="frame" x="0.0" y="0.0" width="428" height="926"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" insetsLayoutMarginsFromSafeArea="NO" image="app_logo_white.png" translatesAutoresizingMaskIntoConstraints="NO" id="gCl-fY-0VN">
<rect key="frame" x="139" y="388" width="150" height="150"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
</subviews>
<color key="backgroundColor" red="0.8901960784313725" green="0.043137254901960784" blue="0.043137254901960784" alpha="1" colorSpace="calibratedRGB"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="3wl-m6-tKk" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-414" y="215"/>
</scene>
</scenes>
<resources>
<image name="app_logo_white.png" width="245.75999450683594" height="245.75999450683594"/>
</resources>
</document>
字符串
1条答案
按热度按时间z6psavjg1#
唯一可行的解决方案是重新创建启动屏幕,使用图像视图或子视图控制器,即应用启动到的根视图的顶部。因此,当实际启动屏幕淡出时,它将淡出到一个重复的视图,这将使过渡不明显。然后只需删除重复的启动屏幕,而不使用淡入动画,或者使用您选择的另一个动画。这里唯一的警告是将删除重复视图的时间延迟
0.5
,因为这似乎是淡出的持续时间。如果您不执行此延迟,您仍然会看到淡出动画。对于那些说如果你看到淡出动画,你一定做错了什么的人是不正确的。淡出是存在的,不能被禁用。这些人看不到它的原因是因为他们的启动屏幕完美地融入了启动视图。然而,如果他们将启动屏幕更改为其他任何东西,那么他们就会看到它。