Skip to content
This repository was archived by the owner on Nov 12, 2019. It is now read-only.

Commit 3a54a45

Browse files
committed
iOS splash screen
1 parent 38f684a commit 3a54a45

File tree

4 files changed

+93
-19
lines changed

4 files changed

+93
-19
lines changed

ios/GankIO.xcodeproj/project.pbxproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; };
1515
00E356F31AD99517003FC87E /* GankIOTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* GankIOTests.m */; };
1616
017D8A331DEAC59F00F2DB2E /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 01456E5E1DEABF5A008162CC /* libRCTAnimation.a */; };
17+
01F5B9D31DF8344400B5C13A /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 01F5B9D21DF8344400B5C13A /* icon.png */; };
18+
01F5B9EA1DF8366B00B5C13A /* SplashScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = 01F5B9E91DF8366B00B5C13A /* SplashScreen.m */; };
1719
0FA08FA7C55E4A0C91DA1905 /* SimpleLineIcons.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CD709DA11F8B49F89DC3EC29 /* SimpleLineIcons.ttf */; };
1820
133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; };
1921
139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; };
@@ -198,6 +200,9 @@
198200
00E356F21AD99517003FC87E /* GankIOTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GankIOTests.m; sourceTree = "<group>"; };
199201
00FBF7899E1440B1A2F6A7E0 /* libRNVectorIcons.a */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = archive.ar; path = libRNVectorIcons.a; sourceTree = "<group>"; };
200202
01456E571DEABF59008162CC /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; };
203+
01F5B9D21DF8344400B5C13A /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon.png; path = ../js/assets/icon.png; sourceTree = "<group>"; };
204+
01F5B9E81DF8366B00B5C13A /* SplashScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SplashScreen.h; path = GankIO/SplashScreen.h; sourceTree = "<group>"; };
205+
01F5B9E91DF8366B00B5C13A /* SplashScreen.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SplashScreen.m; path = GankIO/SplashScreen.m; sourceTree = "<group>"; };
201206
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
202207
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
203208
13B07F961A680F5B00A75B9A /* GankIO.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GankIO.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -357,6 +362,8 @@
357362
13B07FB61A68108700A75B9A /* Info.plist */,
358363
13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
359364
13B07FB71A68108700A75B9A /* main.m */,
365+
01F5B9E81DF8366B00B5C13A /* SplashScreen.h */,
366+
01F5B9E91DF8366B00B5C13A /* SplashScreen.m */,
360367
);
361368
name = GankIO;
362369
sourceTree = "<group>";
@@ -373,6 +380,7 @@
373380
1BC565A95F31458086FD4067 /* Resources */ = {
374381
isa = PBXGroup;
375382
children = (
383+
01F5B9D21DF8344400B5C13A /* icon.png */,
376384
D3F32007D4C24B20BA7BFB9A /* Entypo.ttf */,
377385
4FD9B84648564BB88ECFBDDE /* EvilIcons.ttf */,
378386
5E4108478C1C48E2AF7EA337 /* FontAwesome.ttf */,
@@ -731,6 +739,7 @@
731739
E616D1BB126D441C8EB2180A /* Foundation.ttf in Resources */,
732740
2ADBD2DA897A429CBC4DB6F6 /* Ionicons.ttf in Resources */,
733741
EE4911D73F974F18A3000866 /* MaterialIcons.ttf in Resources */,
742+
01F5B9D31DF8344400B5C13A /* icon.png in Resources */,
734743
732BB5C2D26D4A88B677AA2E /* Octicons.ttf in Resources */,
735744
0FA08FA7C55E4A0C91DA1905 /* SimpleLineIcons.ttf in Resources */,
736745
923952D4AA374BBF9065A457 /* Zocial.ttf in Resources */,
@@ -769,6 +778,7 @@
769778
isa = PBXSourcesBuildPhase;
770779
buildActionMask = 2147483647;
771780
files = (
781+
01F5B9EA1DF8366B00B5C13A /* SplashScreen.m in Sources */,
772782
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
773783
13B07FC11A68108700A75B9A /* main.m in Sources */,
774784
);
Lines changed: 36 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,59 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="11542" systemVersion="16B2555" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES">
3+
<device id="retina4_7" orientation="portrait">
4+
<adaptation id="fullscreen"/>
5+
</device>
36
<dependencies>
47
<deployment identifier="iOS"/>
5-
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/>
6-
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
8+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="11524"/>
9+
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
710
</dependencies>
811
<objects>
912
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
1013
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
1114
<view contentMode="scaleToFill" id="iN0-l3-epB">
12-
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
15+
<rect key="frame" x="0.0" y="0.0" width="464" height="480"/>
1316
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
1417
<subviews>
15-
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
16-
<rect key="frame" x="20" y="439" width="441" height="21"/>
18+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="获取每日干货信息" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
19+
<rect key="frame" x="11.5" y="394" width="441" height="21"/>
20+
<constraints>
21+
<constraint firstAttribute="height" constant="21" id="IsK-9i-opa"/>
22+
<constraint firstAttribute="width" constant="441" id="oIj-vq-U6v"/>
23+
</constraints>
1724
<fontDescription key="fontDescription" type="system" pointSize="17"/>
18-
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
25+
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
1926
<nil key="highlightedColor"/>
2027
</label>
21-
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="GankIO" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
22-
<rect key="frame" x="20" y="140" width="441" height="43"/>
23-
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
28+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="干货集中营" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
29+
<rect key="frame" x="181" y="191" width="102" height="24"/>
30+
<fontDescription key="fontDescription" type="system" pointSize="20"/>
2431
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
2532
<nil key="highlightedColor"/>
2633
</label>
34+
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="N2r-bR-niW">
35+
<rect key="frame" x="192" y="92" width="80" height="80"/>
36+
<constraints>
37+
<constraint firstAttribute="height" constant="80" id="9K1-26-aYX"/>
38+
<constraint firstAttribute="width" constant="80" id="eDF-O4-BkM"/>
39+
</constraints>
40+
</imageView>
2741
</subviews>
28-
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
42+
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
2943
<constraints>
30-
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
31-
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
32-
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/>
33-
<constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/>
34-
<constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/>
35-
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
44+
<constraint firstItem="8ie-xW-0ye" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="53A-Ix-0do"/>
45+
<constraint firstItem="kId-c2-rCX" firstAttribute="top" secondItem="N2r-bR-niW" secondAttribute="bottom" constant="19" id="8V1-c4-FnS"/>
46+
<constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="65" id="PTW-Pm-xpR"/>
47+
<constraint firstItem="N2r-bR-niW" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="QOw-rN-J7J"/>
48+
<constraint firstItem="kId-c2-rCX" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="dja-YE-X4B"/>
49+
<constraint firstItem="N2r-bR-niW" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" constant="92" id="k32-xq-o2f"/>
3650
</constraints>
3751
<nil key="simulatedStatusBarMetrics"/>
3852
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
39-
<point key="canvasLocation" x="548" y="455"/>
53+
<point key="canvasLocation" x="540" y="455"/>
4054
</view>
4155
</objects>
56+
<resources>
57+
<image name="icon.png" width="165" height="165"/>
58+
</resources>
4259
</document>

ios/GankIO/SplashScreen.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// SplashScreen.h
3+
// GankIO
4+
//
5+
// Created by wangdi on 7/12/16.
6+
// Copyright © 2016 Facebook. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
#import "RCTBridgeModule.h"
11+
12+
@interface SplashScreen : NSObject<RCTBridgeModule>
13+
+ (void)show;
14+
15+
@end

ios/GankIO/SplashScreen.m

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//
2+
// SplashScreen.m
3+
// GankIO
4+
//
5+
// Created by wangdi on 7/12/16.
6+
// Copyright © 2016 Facebook. All rights reserved.
7+
//
8+
9+
#import "SplashScreen.h"
10+
11+
static bool waiting = true;
12+
13+
@implementation SplashScreen
14+
- (dispatch_queue_t)methodQueue{
15+
return dispatch_get_main_queue();
16+
}
17+
RCT_EXPORT_MODULE()
18+
19+
+ (void)show {
20+
while (waiting) {
21+
NSDate* later = [NSDate dateWithTimeIntervalSinceNow:0.1];
22+
[[NSRunLoop mainRunLoop] runUntilDate:later];
23+
}
24+
}
25+
26+
RCT_EXPORT_METHOD(hide) {
27+
dispatch_async(dispatch_get_main_queue(),
28+
^{
29+
waiting = false;
30+
});
31+
}
32+
@end

0 commit comments

Comments
 (0)