Commit b3b0f1e3 authored by lmj_521aiau@163.com's avatar lmj_521aiau@163.com

no message

parent 4e998a20
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
64EEB1FF24B4857900636C0F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64EEB1FE24B4857900636C0F /* SystemConfiguration.framework */; }; 64EEB1FF24B4857900636C0F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64EEB1FE24B4857900636C0F /* SystemConfiguration.framework */; };
64EEB20124B4858400636C0F /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64EEB20024B4858400636C0F /* CoreTelephony.framework */; }; 64EEB20124B4858400636C0F /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64EEB20024B4858400636C0F /* CoreTelephony.framework */; };
6E51C876B9F4018A31052292 /* Pods_superCleaner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 683238A791AB6302FDBEF711 /* Pods_superCleaner.framework */; }; 6E51C876B9F4018A31052292 /* Pods_superCleaner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 683238A791AB6302FDBEF711 /* Pods_superCleaner.framework */; };
A94B7CB524EA81C8002C75CA /* LaunchScreenPlaceHolderView.m in Sources */ = {isa = PBXBuildFile; fileRef = A94B7CAD24EA81C7002C75CA /* LaunchScreenPlaceHolderView.m */; };
A94B7CB624EA81C8002C75CA /* LaunchScreenPlaceHolderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A94B7CAE24EA81C7002C75CA /* LaunchScreenPlaceHolderView.xib */; };
A94B7CB724EA81C8002C75CA /* ZJGuideConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = A94B7CB224EA81C7002C75CA /* ZJGuideConfig.m */; };
A94C0C8424DA69B3007F577D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A94C0B6F24DA69B0007F577D /* Localizable.strings */; }; A94C0C8424DA69B3007F577D /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A94C0B6F24DA69B0007F577D /* Localizable.strings */; };
A94C0CC824DA69B3007F577D /* SCConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94C0BFE24DA69B1007F577D /* SCConstants.swift */; }; A94C0CC824DA69B3007F577D /* SCConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94C0BFE24DA69B1007F577D /* SCConstants.swift */; };
A94C0CF324DA69B3007F577D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A94C0C4324DA69B2007F577D /* Assets.xcassets */; }; A94C0CF324DA69B3007F577D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A94C0C4324DA69B2007F577D /* Assets.xcassets */; };
...@@ -176,6 +179,7 @@ ...@@ -176,6 +179,7 @@
A94C0F6B24DBF952007F577D /* AASeriesElement.m in Sources */ = {isa = PBXBuildFile; fileRef = A94C0F4424DBF952007F577D /* AASeriesElement.m */; }; A94C0F6B24DBF952007F577D /* AASeriesElement.m in Sources */ = {isa = PBXBuildFile; fileRef = A94C0F4424DBF952007F577D /* AASeriesElement.m */; };
A94C0F6F24DC0606007F577D /* SCHomeHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = A94C0F6D24DC0606007F577D /* SCHomeHeaderView.m */; }; A94C0F6F24DC0606007F577D /* SCHomeHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = A94C0F6D24DC0606007F577D /* SCHomeHeaderView.m */; };
A94C0F7024DC0606007F577D /* SCHomeHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A94C0F6E24DC0606007F577D /* SCHomeHeaderView.xib */; }; A94C0F7024DC0606007F577D /* SCHomeHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A94C0F6E24DC0606007F577D /* SCHomeHeaderView.xib */; };
A94D935024F6386900A886C0 /* XMDotProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = A94D934F24F6386900A886C0 /* XMDotProgressView.m */; };
A9827B1C24E5156E004E6FE4 /* ICCustomLaunchScreenView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9827B1A24E5156E004E6FE4 /* ICCustomLaunchScreenView.m */; }; A9827B1C24E5156E004E6FE4 /* ICCustomLaunchScreenView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9827B1A24E5156E004E6FE4 /* ICCustomLaunchScreenView.m */; };
A9827B1D24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9827B1B24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib */; }; A9827B1D24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9827B1B24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib */; };
A9827B2024E51579004E6FE4 /* ICAdsTrackModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A9827B1F24E51579004E6FE4 /* ICAdsTrackModel.m */; }; A9827B2024E51579004E6FE4 /* ICAdsTrackModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A9827B1F24E51579004E6FE4 /* ICAdsTrackModel.m */; };
...@@ -209,6 +213,11 @@ ...@@ -209,6 +213,11 @@
64EEB1FE24B4857900636C0F /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; 64EEB1FE24B4857900636C0F /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
64EEB20024B4858400636C0F /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 64EEB20024B4858400636C0F /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; };
683238A791AB6302FDBEF711 /* Pods_superCleaner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_superCleaner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 683238A791AB6302FDBEF711 /* Pods_superCleaner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_superCleaner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A94B7CAD24EA81C7002C75CA /* LaunchScreenPlaceHolderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LaunchScreenPlaceHolderView.m; sourceTree = "<group>"; };
A94B7CAE24EA81C7002C75CA /* LaunchScreenPlaceHolderView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreenPlaceHolderView.xib; sourceTree = "<group>"; };
A94B7CAF24EA81C7002C75CA /* LaunchScreenPlaceHolderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchScreenPlaceHolderView.h; sourceTree = "<group>"; };
A94B7CB224EA81C7002C75CA /* ZJGuideConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZJGuideConfig.m; sourceTree = "<group>"; };
A94B7CB424EA81C7002C75CA /* ZJGuideConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZJGuideConfig.h; sourceTree = "<group>"; };
A94C0B7024DA69B0007F577D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; }; A94C0B7024DA69B0007F577D /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
A94C0BFE24DA69B1007F577D /* SCConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SCConstants.swift; sourceTree = "<group>"; }; A94C0BFE24DA69B1007F577D /* SCConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SCConstants.swift; sourceTree = "<group>"; };
A94C0C4324DA69B2007F577D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; A94C0C4324DA69B2007F577D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
...@@ -476,6 +485,8 @@ ...@@ -476,6 +485,8 @@
A94C0F6C24DC0606007F577D /* SCHomeHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SCHomeHeaderView.h; sourceTree = "<group>"; }; A94C0F6C24DC0606007F577D /* SCHomeHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SCHomeHeaderView.h; sourceTree = "<group>"; };
A94C0F6D24DC0606007F577D /* SCHomeHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SCHomeHeaderView.m; sourceTree = "<group>"; }; A94C0F6D24DC0606007F577D /* SCHomeHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SCHomeHeaderView.m; sourceTree = "<group>"; };
A94C0F6E24DC0606007F577D /* SCHomeHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SCHomeHeaderView.xib; sourceTree = "<group>"; }; A94C0F6E24DC0606007F577D /* SCHomeHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SCHomeHeaderView.xib; sourceTree = "<group>"; };
A94D934E24F6386900A886C0 /* XMDotProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMDotProgressView.h; sourceTree = "<group>"; };
A94D934F24F6386900A886C0 /* XMDotProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMDotProgressView.m; sourceTree = "<group>"; };
A9827B1924E5156E004E6FE4 /* ICCustomLaunchScreenView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ICCustomLaunchScreenView.h; sourceTree = "<group>"; }; A9827B1924E5156E004E6FE4 /* ICCustomLaunchScreenView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ICCustomLaunchScreenView.h; sourceTree = "<group>"; };
A9827B1A24E5156E004E6FE4 /* ICCustomLaunchScreenView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ICCustomLaunchScreenView.m; sourceTree = "<group>"; }; A9827B1A24E5156E004E6FE4 /* ICCustomLaunchScreenView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ICCustomLaunchScreenView.m; sourceTree = "<group>"; };
A9827B1B24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ICCustomLaunchScreenView.xib; sourceTree = "<group>"; }; A9827B1B24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ICCustomLaunchScreenView.xib; sourceTree = "<group>"; };
...@@ -546,10 +557,31 @@ ...@@ -546,10 +557,31 @@
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
A94B7CAC24EA81C7002C75CA /* LaunchScreen */ = {
isa = PBXGroup;
children = (
A94B7CAF24EA81C7002C75CA /* LaunchScreenPlaceHolderView.h */,
A94B7CAD24EA81C7002C75CA /* LaunchScreenPlaceHolderView.m */,
A94B7CAE24EA81C7002C75CA /* LaunchScreenPlaceHolderView.xib */,
);
path = LaunchScreen;
sourceTree = "<group>";
};
A94B7CB024EA81C7002C75CA /* Guide */ = {
isa = PBXGroup;
children = (
A94B7CB424EA81C7002C75CA /* ZJGuideConfig.h */,
A94B7CB224EA81C7002C75CA /* ZJGuideConfig.m */,
);
path = Guide;
sourceTree = "<group>";
};
A94C0B6C24DA69B0007F577D /* superCleaner */ = { A94C0B6C24DA69B0007F577D /* superCleaner */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A94C0C6F24DA69B2007F577D /* superCleaner.entitlements */, A94C0C6F24DA69B2007F577D /* superCleaner.entitlements */,
A94B7CB024EA81C7002C75CA /* Guide */,
A94B7CAC24EA81C7002C75CA /* LaunchScreen */,
A94C0D1224DA7043007F577D /* Base */, A94C0D1224DA7043007F577D /* Base */,
A94C0DF924DA7044007F577D /* Extension */, A94C0DF924DA7044007F577D /* Extension */,
A94C0D7424DA7043007F577D /* Home */, A94C0D7424DA7043007F577D /* Home */,
...@@ -685,6 +717,7 @@ ...@@ -685,6 +717,7 @@
A94C0D4024DA7043007F577D /* Other */ = { A94C0D4024DA7043007F577D /* Other */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
A94D934D24F6386900A886C0 /* XMDotProgressView */,
A94C0E8F24DBF1B3007F577D /* AAChartKitLib */, A94C0E8F24DBF1B3007F577D /* AAChartKitLib */,
A94C0D4B24DA7043007F577D /* BatteryCareBluetooth.plist */, A94C0D4B24DA7043007F577D /* BatteryCareBluetooth.plist */,
A94C0D5624DA7043007F577D /* BatteryCareLocation.plist */, A94C0D5624DA7043007F577D /* BatteryCareLocation.plist */,
...@@ -1067,6 +1100,15 @@ ...@@ -1067,6 +1100,15 @@
path = AAChartCreator; path = AAChartCreator;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
A94D934D24F6386900A886C0 /* XMDotProgressView */ = {
isa = PBXGroup;
children = (
A94D934E24F6386900A886C0 /* XMDotProgressView.h */,
A94D934F24F6386900A886C0 /* XMDotProgressView.m */,
);
path = XMDotProgressView;
sourceTree = "<group>";
};
A9827B1824E514B5004E6FE4 /* SCAds */ = { A9827B1824E514B5004E6FE4 /* SCAds */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -1177,6 +1219,7 @@ ...@@ -1177,6 +1219,7 @@
A94C0F7024DC0606007F577D /* SCHomeHeaderView.xib in Resources */, A94C0F7024DC0606007F577D /* SCHomeHeaderView.xib in Resources */,
A94C0E2624DA7044007F577D /* BatteryCareNotification.plist in Resources */, A94C0E2624DA7044007F577D /* BatteryCareNotification.plist in Resources */,
A94C0F6724DBF952007F577D /* AAJSFiles.bundle in Resources */, A94C0F6724DBF952007F577D /* AAJSFiles.bundle in Resources */,
A94B7CB624EA81C8002C75CA /* LaunchScreenPlaceHolderView.xib in Resources */,
A94C0E2A24DA7044007F577D /* BatteryCareLowPowerMode.plist in Resources */, A94C0E2A24DA7044007F577D /* BatteryCareLowPowerMode.plist in Resources */,
A94C0E2424DA7044007F577D /* BatteryCareBluetooth.plist in Resources */, A94C0E2424DA7044007F577D /* BatteryCareBluetooth.plist in Resources */,
A94C0CF524DA69B3007F577D /* LaunchScreen.storyboard in Resources */, A94C0CF524DA69B3007F577D /* LaunchScreen.storyboard in Resources */,
...@@ -1286,6 +1329,7 @@ ...@@ -1286,6 +1329,7 @@
A94C0E5B24DA7044007F577D /* MeasurNetTools.m in Sources */, A94C0E5B24DA7044007F577D /* MeasurNetTools.m in Sources */,
A94C0CF424DA69B3007F577D /* AppDelegate.m in Sources */, A94C0CF424DA69B3007F577D /* AppDelegate.m in Sources */,
A94C0E4B24DA7044007F577D /* WKPhotoInfoItem.m in Sources */, A94C0E4B24DA7044007F577D /* WKPhotoInfoItem.m in Sources */,
A94B7CB724EA81C8002C75CA /* ZJGuideConfig.m in Sources */,
A94C0F5724DBF952007F577D /* AALang.m in Sources */, A94C0F5724DBF952007F577D /* AALang.m in Sources */,
A94C0E1D24DA7044007F577D /* ICUserManager.m in Sources */, A94C0E1D24DA7044007F577D /* ICUserManager.m in Sources */,
A9C32CF224E42BBA00F4C587 /* ICContactsIncompleteCell.m in Sources */, A9C32CF224E42BBA00F4C587 /* ICContactsIncompleteCell.m in Sources */,
...@@ -1371,6 +1415,7 @@ ...@@ -1371,6 +1415,7 @@
A94C0F4824DBF952007F577D /* AALabels.m in Sources */, A94C0F4824DBF952007F577D /* AALabels.m in Sources */,
A94C0E6624DA7044007F577D /* Data.m in Sources */, A94C0E6624DA7044007F577D /* Data.m in Sources */,
A94C0E5824DA7044007F577D /* ICPvwPhotoViewerCell.m in Sources */, A94C0E5824DA7044007F577D /* ICPvwPhotoViewerCell.m in Sources */,
A94D935024F6386900A886C0 /* XMDotProgressView.m in Sources */,
A94C0E3E24DA7044007F577D /* ICBatteryCareListViewCell.m in Sources */, A94C0E3E24DA7044007F577D /* ICBatteryCareListViewCell.m in Sources */,
A94C0F5324DBF952007F577D /* AACredits.m in Sources */, A94C0F5324DBF952007F577D /* AACredits.m in Sources */,
A94C0E1824DA7044007F577D /* WKCompressImageTool.m in Sources */, A94C0E1824DA7044007F577D /* WKCompressImageTool.m in Sources */,
...@@ -1379,6 +1424,7 @@ ...@@ -1379,6 +1424,7 @@
A94C0E2124DA7044007F577D /* ICCalenderReminderController.m in Sources */, A94C0E2124DA7044007F577D /* ICCalenderReminderController.m in Sources */,
A94C0E1624DA7044007F577D /* WKClearPhotoManager.m in Sources */, A94C0E1624DA7044007F577D /* WKClearPhotoManager.m in Sources */,
A94C0F4F24DBF952007F577D /* AATooltip.m in Sources */, A94C0F4F24DBF952007F577D /* AATooltip.m in Sources */,
A94B7CB524EA81C8002C75CA /* LaunchScreenPlaceHolderView.m in Sources */,
A94C0E6024DA7044007F577D /* QiSlider.m in Sources */, A94C0E6024DA7044007F577D /* QiSlider.m in Sources */,
A94C0E8124DA7044007F577D /* ImageSimilarity.swift in Sources */, A94C0E8124DA7044007F577D /* ImageSimilarity.swift in Sources */,
A94C0E4224DA7044007F577D /* ICPhotoLocationViewController.m in Sources */, A94C0E4224DA7044007F577D /* ICPhotoLocationViewController.m in Sources */,
...@@ -1549,7 +1595,7 @@ ...@@ -1549,7 +1595,7 @@
CODE_SIGN_ENTITLEMENTS = superCleaner/superCleaner.entitlements; CODE_SIGN_ENTITLEMENTS = superCleaner/superCleaner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 103; CURRENT_PROJECT_VERSION = 107;
DEVELOPMENT_TEAM = 443AN53DBQ; DEVELOPMENT_TEAM = 443AN53DBQ;
ENABLE_BITCODE = YES; ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
...@@ -1584,7 +1630,7 @@ ...@@ -1584,7 +1630,7 @@
CODE_SIGN_ENTITLEMENTS = superCleaner/superCleaner.entitlements; CODE_SIGN_ENTITLEMENTS = superCleaner/superCleaner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 103; CURRENT_PROJECT_VERSION = 107;
DEVELOPMENT_TEAM = 443AN53DBQ; DEVELOPMENT_TEAM = 443AN53DBQ;
ENABLE_BITCODE = YES; ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "编组@2x.png", "filename" : "选中@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "编组@3x.png", "filename" : "选中@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "苹果6.7.8-引导页-3@2x.png", "filename" : "苹果6.7.8-引导页-3副本@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "苹果6.7.8-引导页-3@3x.png", "filename" : "苹果6.7.8-引导页-3副本@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "super苹果引导11-3@2x.png", "filename" : "super苹果引导11-3副本@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "super苹果引导11-3@3x.png", "filename" : "super苹果引导11-3副本@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "声波@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "声波@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "编组 4@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "编组 4@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "虫子-实@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "虫子-实@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "宠物 (2)@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "宠物 (2)@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "编组 3@2x.png", "filename" : "表盘@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "编组 3@3x.png", "filename" : "表盘@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
"scale" : "1x" "scale" : "1x"
}, },
{ {
"filename" : "位图@2x.png", "filename" : "%E5%8D%83%E5%BA%93%E7%BD%91_APP%E9%A1%B5%E9%9D%A2%E7%A9%BA%E7%8A%B6%E6%80%81%E6%B8%90%E5%8F%98%E6%89%81%E5%B9%B3%E9%A3%8E_%E5%85%83%E7%B4%A0%E7%BC%96%E5%8F%B712272362@2x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"filename" : "位图@3x.png", "filename" : "%E5%8D%83%E5%BA%93%E7%BD%91_APP%E9%A1%B5%E9%9D%A2%E7%A9%BA%E7%8A%B6%E6%80%81%E6%B8%90%E5%8F%98%E6%89%81%E5%B9%B3%E9%A3%8E_%E5%85%83%E7%B4%A0%E7%BC%96%E5%8F%B712272362@3x.png",
"idiom" : "universal", "idiom" : "universal",
"scale" : "3x" "scale" : "3x"
} }
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<device id="retina5_5" orientation="portrait" appearance="light"/> <device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies> <dependencies>
<deployment identifier="iOS"/> <deployment identifier="iOS"/>
...@@ -22,15 +22,15 @@ ...@@ -22,15 +22,15 @@
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints> <constraints>
<constraint firstItem="acc-Rv-JIN" firstAttribute="centerY" secondItem="6Tk-OE-BBY" secondAttribute="centerY" constant="-60" id="E7q-4D-g0o"/> <constraint firstItem="acc-Rv-JIN" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" constant="-60" id="E7q-4D-g0o"/>
<constraint firstItem="acc-Rv-JIN" firstAttribute="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="qL0-ib-AtF"/> <constraint firstItem="acc-Rv-JIN" firstAttribute="centerX" secondItem="eOI-jj-n0w" secondAttribute="centerX" id="qL0-ib-AtF"/>
</constraints> </constraints>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> <viewLayoutGuide key="safeArea" id="eOI-jj-n0w"/>
</view> </view>
</viewController> </viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects> </objects>
<point key="canvasLocation" x="53" y="375"/> <point key="canvasLocation" x="52.173913043478265" y="374.18478260869568"/>
</scene> </scene>
</scenes> </scenes>
<resources> <resources>
......
...@@ -112,6 +112,7 @@ ...@@ -112,6 +112,7 @@
<outlet property="iconImV" destination="q6x-Wi-XlX" id="KPz-gt-Ipv"/> <outlet property="iconImV" destination="q6x-Wi-XlX" id="KPz-gt-Ipv"/>
<outlet property="left" destination="ueJ-Hi-iHu" id="xqa-7o-Iy5"/> <outlet property="left" destination="ueJ-Hi-iHu" id="xqa-7o-Iy5"/>
<outlet property="right" destination="cNF-xd-ZI3" id="UOn-5p-Hxb"/> <outlet property="right" destination="cNF-xd-ZI3" id="UOn-5p-Hxb"/>
<outlet property="titleBottomConstraint" destination="x6B-mQ-wPM" id="5aE-hU-Z3Z"/>
<outlet property="titleLab" destination="FUe-po-yXc" id="4aN-rp-0sn"/> <outlet property="titleLab" destination="FUe-po-yXc" id="4aN-rp-0sn"/>
<outlet property="top" destination="YJh-Qm-QMN" id="O8E-7m-csn"/> <outlet property="top" destination="YJh-Qm-QMN" id="O8E-7m-csn"/>
</connections> </connections>
...@@ -1072,7 +1073,7 @@ ...@@ -1072,7 +1073,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="6ir-ko-R55"> <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="6ir-ko-R55">
<rect key="frame" x="6" y="0.0" width="363" height="103"/> <rect key="frame" x="6" y="419" width="363" height="103"/>
<subviews> <subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wkd-0h-Tyo"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wkd-0h-Tyo">
<rect key="frame" x="0.0" y="0.0" width="114.5" height="103"/> <rect key="frame" x="0.0" y="0.0" width="114.5" height="103"/>
...@@ -1174,7 +1175,7 @@ ...@@ -1174,7 +1175,7 @@
</connections> </connections>
</button> </button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SCy-G3-LUs"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="SCy-G3-LUs">
<rect key="frame" x="53" y="123" width="269" height="269"/> <rect key="frame" x="53" y="44" width="269" height="269"/>
<constraints> <constraints>
<constraint firstAttribute="width" secondItem="SCy-G3-LUs" secondAttribute="height" id="Vbi-l0-Wvl"/> <constraint firstAttribute="width" secondItem="SCy-G3-LUs" secondAttribute="height" id="Vbi-l0-Wvl"/>
</constraints> </constraints>
...@@ -1182,12 +1183,12 @@ ...@@ -1182,12 +1183,12 @@
</subviews> </subviews>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/> <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<constraints> <constraints>
<constraint firstItem="6ir-ko-R55" firstAttribute="top" secondItem="UVC-kp-CP1" secondAttribute="top" id="6qU-rf-DMa"/>
<constraint firstItem="6ir-ko-R55" firstAttribute="width" secondItem="qG2-0p-sYi" secondAttribute="width" multiplier="363:375" id="8pC-dK-qsf"/> <constraint firstItem="6ir-ko-R55" firstAttribute="width" secondItem="qG2-0p-sYi" secondAttribute="width" multiplier="363:375" id="8pC-dK-qsf"/>
<constraint firstItem="SCy-G3-LUs" firstAttribute="top" secondItem="6ir-ko-R55" secondAttribute="bottom" constant="20" id="Edv-bz-sfV"/>
<constraint firstItem="6ir-ko-R55" firstAttribute="centerX" secondItem="UVC-kp-CP1" secondAttribute="centerX" id="PqL-sI-GDT"/> <constraint firstItem="6ir-ko-R55" firstAttribute="centerX" secondItem="UVC-kp-CP1" secondAttribute="centerX" id="PqL-sI-GDT"/>
<constraint firstItem="zI7-gV-TfT" firstAttribute="centerX" secondItem="UVC-kp-CP1" secondAttribute="centerX" id="Rt1-Jb-o33"/> <constraint firstItem="zI7-gV-TfT" firstAttribute="centerX" secondItem="UVC-kp-CP1" secondAttribute="centerX" id="Rt1-Jb-o33"/>
<constraint firstItem="SCy-G3-LUs" firstAttribute="top" secondItem="qG2-0p-sYi" secondAttribute="top" constant="44" id="buI-YF-JTk"/>
<constraint firstItem="SCy-G3-LUs" firstAttribute="width" secondItem="qG2-0p-sYi" secondAttribute="width" multiplier="269:375" id="ccs-Um-7Ci"/> <constraint firstItem="SCy-G3-LUs" firstAttribute="width" secondItem="qG2-0p-sYi" secondAttribute="width" multiplier="269:375" id="ccs-Um-7Ci"/>
<constraint firstItem="zI7-gV-TfT" firstAttribute="top" secondItem="6ir-ko-R55" secondAttribute="bottom" constant="40" id="iON-Yg-vfY"/>
<constraint firstItem="SCy-G3-LUs" firstAttribute="centerX" secondItem="qG2-0p-sYi" secondAttribute="centerX" id="sar-Cp-CfL"/> <constraint firstItem="SCy-G3-LUs" firstAttribute="centerX" secondItem="qG2-0p-sYi" secondAttribute="centerX" id="sar-Cp-CfL"/>
<constraint firstItem="UVC-kp-CP1" firstAttribute="bottom" secondItem="zI7-gV-TfT" secondAttribute="bottom" constant="43" id="u4Y-Yo-jPP"/> <constraint firstItem="UVC-kp-CP1" firstAttribute="bottom" secondItem="zI7-gV-TfT" secondAttribute="bottom" constant="43" id="u4Y-Yo-jPP"/>
</constraints> </constraints>
...@@ -1560,59 +1561,30 @@ ...@@ -1560,59 +1561,30 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pta-bF-CDR"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pta-bF-CDR">
<rect key="frame" x="82.5" y="170" width="210" height="210"/> <rect key="frame" x="55.5" y="170" width="264" height="264"/>
<subviews> <subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tool_dust_clean_cycle_icon_1" translatesAutoresizingMaskIntoConstraints="NO" id="hGo-xT-5rU"> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tool_dust_clean_cycle_icon_1" translatesAutoresizingMaskIntoConstraints="NO" id="hGo-xT-5rU">
<rect key="frame" x="0.0" y="0.0" width="210" height="210"/> <rect key="frame" x="0.0" y="0.0" width="264" height="264"/>
</imageView> </imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zcl-s1-Hjt"> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tool_clean_dust_center_bg" translatesAutoresizingMaskIntoConstraints="NO" id="mdW-LH-bA0">
<rect key="frame" x="30" y="30" width="150" height="150"/> <rect key="frame" x="3" y="115" width="258" height="34"/>
<subviews> </imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fjU-8z-Upy"> <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tool_clean_dust_center" translatesAutoresizingMaskIntoConstraints="NO" id="d33-gv-zYG">
<rect key="frame" x="22" y="22" width="106" height="106"/> <rect key="frame" x="48" y="108" width="168" height="48"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tool_dust_image" translatesAutoresizingMaskIntoConstraints="NO" id="d33-gv-zYG">
<rect key="frame" x="23" y="23" width="60" height="60"/>
</imageView> </imageView>
</subviews>
<color key="backgroundColor" red="0.14901960784313725" green="0.74117647058823533" blue="0.36078431372549019" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="d33-gv-zYG" firstAttribute="centerY" secondItem="fjU-8z-Upy" secondAttribute="centerY" id="RGl-Rs-dWM"/>
<constraint firstItem="d33-gv-zYG" firstAttribute="centerX" secondItem="fjU-8z-Upy" secondAttribute="centerX" id="STP-5L-nPa"/>
<constraint firstAttribute="width" constant="106" id="dhh-zA-NiC"/>
<constraint firstAttribute="height" constant="106" id="eh3-u6-LIJ"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="massBackgroundColor">
<color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" red="0.14901960784313725" green="0.74117647058823533" blue="0.36078431372549019" alpha="0.14999999999999999" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="150" id="d2f-80-wch"/>
<constraint firstItem="fjU-8z-Upy" firstAttribute="centerX" secondItem="zcl-s1-Hjt" secondAttribute="centerX" id="izq-FG-8pb"/>
<constraint firstItem="fjU-8z-Upy" firstAttribute="centerY" secondItem="zcl-s1-Hjt" secondAttribute="centerY" id="rUe-64-Ad4"/>
<constraint firstAttribute="width" constant="150" id="sbD-dH-6E6"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="massBackgroundColorWithAlpha">
<real key="value" value="0.14999999999999999"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</view>
</subviews> </subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="210" id="0Fe-W8-EZ9"/> <constraint firstAttribute="width" constant="264" id="0Fe-W8-EZ9"/>
<constraint firstItem="zcl-s1-Hjt" firstAttribute="centerX" secondItem="pta-bF-CDR" secondAttribute="centerX" id="2bx-r2-DM4"/> <constraint firstItem="d33-gv-zYG" firstAttribute="centerX" secondItem="pta-bF-CDR" secondAttribute="centerX" id="1LT-WT-tr5"/>
<constraint firstAttribute="bottom" secondItem="hGo-xT-5rU" secondAttribute="bottom" id="7M9-ff-opa"/> <constraint firstAttribute="bottom" secondItem="hGo-xT-5rU" secondAttribute="bottom" id="7M9-ff-opa"/>
<constraint firstItem="hGo-xT-5rU" firstAttribute="top" secondItem="pta-bF-CDR" secondAttribute="top" id="8VE-J8-KfY"/> <constraint firstItem="hGo-xT-5rU" firstAttribute="top" secondItem="pta-bF-CDR" secondAttribute="top" id="8VE-J8-KfY"/>
<constraint firstAttribute="height" constant="210" id="TCE-he-zSr"/> <constraint firstAttribute="height" constant="264" id="TCE-he-zSr"/>
<constraint firstItem="d33-gv-zYG" firstAttribute="centerY" secondItem="pta-bF-CDR" secondAttribute="centerY" id="gIZ-lV-Xl3"/>
<constraint firstAttribute="trailing" secondItem="hGo-xT-5rU" secondAttribute="trailing" id="hWU-Wm-rWJ"/> <constraint firstAttribute="trailing" secondItem="hGo-xT-5rU" secondAttribute="trailing" id="hWU-Wm-rWJ"/>
<constraint firstItem="mdW-LH-bA0" firstAttribute="centerX" secondItem="pta-bF-CDR" secondAttribute="centerX" id="jTP-PV-nnQ"/>
<constraint firstItem="hGo-xT-5rU" firstAttribute="leading" secondItem="pta-bF-CDR" secondAttribute="leading" id="oQA-LN-Q6g"/> <constraint firstItem="hGo-xT-5rU" firstAttribute="leading" secondItem="pta-bF-CDR" secondAttribute="leading" id="oQA-LN-Q6g"/>
<constraint firstItem="zcl-s1-Hjt" firstAttribute="centerY" secondItem="pta-bF-CDR" secondAttribute="centerY" id="ogy-7E-Tzh"/> <constraint firstItem="mdW-LH-bA0" firstAttribute="centerY" secondItem="pta-bF-CDR" secondAttribute="centerY" id="sY5-3U-FfL"/>
</constraints> </constraints>
</view> </view>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="RRH-c4-EBp"> <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="RRH-c4-EBp">
...@@ -1707,7 +1679,7 @@ ...@@ -1707,7 +1679,7 @@
</constraints> </constraints>
</stackView> </stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MoV-qT-r81"> <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MoV-qT-r81">
<rect key="frame" x="30" y="430" width="315" height="30"/> <rect key="frame" x="30" y="484" width="315" height="30"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/> <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints> <constraints>
<constraint firstAttribute="height" constant="30" id="rNr-sd-MgD"/> <constraint firstAttribute="height" constant="30" id="rNr-sd-MgD"/>
...@@ -1724,13 +1696,13 @@ ...@@ -1724,13 +1696,13 @@
</connections> </connections>
</button> </button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1min" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BXk-Ja-4Ty"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1min" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BXk-Ja-4Ty">
<rect key="frame" x="30" y="462" width="33.5" height="19.5"/> <rect key="frame" x="30" y="516" width="33.5" height="19.5"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/> <fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/> <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
</label> </label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="60min" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4YA-v7-jXu"> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="60min" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4YA-v7-jXu">
<rect key="frame" x="299" y="462" width="46" height="19.5"/> <rect key="frame" x="299" y="516" width="46" height="19.5"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/> <fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/> <color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/> <nil key="highlightedColor"/>
...@@ -1758,11 +1730,10 @@ ...@@ -1758,11 +1730,10 @@
</view> </view>
<connections> <connections>
<outlet property="bgCycleImageView" destination="hGo-xT-5rU" id="N9A-DY-hsl"/> <outlet property="bgCycleImageView" destination="hGo-xT-5rU" id="N9A-DY-hsl"/>
<outlet property="centerBgImageView" destination="mdW-LH-bA0" id="gRT-ys-SFv"/>
<outlet property="centerImageView" destination="d33-gv-zYG" id="FSx-JL-yiZ"/> <outlet property="centerImageView" destination="d33-gv-zYG" id="FSx-JL-yiZ"/>
<outlet property="imageContentView" destination="fjU-8z-Upy" id="dwI-dE-B8N"/>
<outlet property="sliderContentView" destination="MoV-qT-r81" id="s0p-91-WVn"/> <outlet property="sliderContentView" destination="MoV-qT-r81" id="s0p-91-WVn"/>
<outlet property="startButton" destination="e8x-cR-M5l" id="mIg-sC-37d"/> <outlet property="startButton" destination="e8x-cR-M5l" id="mIg-sC-37d"/>
<outlet property="subContentView" destination="zcl-s1-Hjt" id="HNs-wh-dGT"/>
<outletCollection property="topActionButtons" destination="4u9-hL-eKi" id="dok-iV-Xjh"/> <outletCollection property="topActionButtons" destination="4u9-hL-eKi" id="dok-iV-Xjh"/>
<outletCollection property="topActionButtons" destination="gK7-m8-YEr" id="a9o-xE-dpt"/> <outletCollection property="topActionButtons" destination="gK7-m8-YEr" id="a9o-xE-dpt"/>
<outletCollection property="topActionButtons" destination="9A7-eg-1yF" id="8GB-AO-OIv"/> <outletCollection property="topActionButtons" destination="9A7-eg-1yF" id="8GB-AO-OIv"/>
...@@ -1782,7 +1753,7 @@ ...@@ -1782,7 +1753,7 @@
<image name="clean_cell_2" width="90" height="90"/> <image name="clean_cell_2" width="90" height="90"/>
<image name="clean_cell_3" width="90" height="90"/> <image name="clean_cell_3" width="90" height="90"/>
<image name="contact_choose" width="22" height="22"/> <image name="contact_choose" width="22" height="22"/>
<image name="contact_choosed" width="22" height="22"/> <image name="contact_choosed" width="26" height="26"/>
<image name="global_green_btn_bg" width="324" height="62"/> <image name="global_green_btn_bg" width="324" height="62"/>
<image name="home_pause_btn_bg" width="26" height="26"/> <image name="home_pause_btn_bg" width="26" height="26"/>
<image name="inAppPurchase_cancel" width="20" height="20"/> <image name="inAppPurchase_cancel" width="20" height="20"/>
...@@ -1793,13 +1764,14 @@ ...@@ -1793,13 +1764,14 @@
<image name="network_update" width="15" height="17"/> <image name="network_update" width="15" height="17"/>
<image name="pay_view_select_icon" width="13" height="8"/> <image name="pay_view_select_icon" width="13" height="8"/>
<image name="tool_action_button_bg" width="324" height="62"/> <image name="tool_action_button_bg" width="324" height="62"/>
<image name="tool_clean_dust_center" width="168" height="48"/>
<image name="tool_clean_dust_center_bg" width="258" height="34"/>
<image name="tool_clean_dust_normal" width="50" height="50"/> <image name="tool_clean_dust_normal" width="50" height="50"/>
<image name="tool_clean_dust_selected" width="50" height="50"/> <image name="tool_clean_dust_selected" width="50" height="50"/>
<image name="tool_drive_mos_normal" width="50" height="50"/> <image name="tool_drive_mos_normal" width="50" height="50"/>
<image name="tool_drive_mos_selected" width="50" height="50"/> <image name="tool_drive_mos_selected" width="50" height="50"/>
<image name="tool_drive_pet_normal" width="50" height="50"/> <image name="tool_drive_pet_normal" width="50" height="50"/>
<image name="tool_drive_pet_selected" width="50" height="50"/> <image name="tool_drive_pet_selected" width="50" height="50"/>
<image name="tool_dust_clean_cycle_icon_1" width="200" height="200"/> <image name="tool_dust_clean_cycle_icon_1" width="260" height="264"/>
<image name="tool_dust_image" width="60" height="60"/>
</resources> </resources>
</document> </document>
...@@ -12,6 +12,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -12,6 +12,8 @@ NS_ASSUME_NONNULL_BEGIN
@interface ICGuideViewController : ICBaseViewController @interface ICGuideViewController : ICBaseViewController
@property (nonatomic, copy) void(^clickCallBack)(BOOL);
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
...@@ -36,9 +36,14 @@ ...@@ -36,9 +36,14 @@
} }
- (void)dismissGuideView { - (void)dismissGuideView {
ICHomeViewController *homeVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICHomeViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC]; if (self.clickCallBack) {
[UIApplication sharedApplication].keyWindow.rootViewController = navc; self.clickCallBack(YES);
}
// ICHomeViewController *homeVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICHomeViewController"];
// ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC];
// [UIApplication sharedApplication].keyWindow.rootViewController = navc;
} }
# pragma mark - UICollectionViewDataSource, UICollectionViewDelegate # pragma mark - UICollectionViewDataSource, UICollectionViewDelegate
......
...@@ -12,7 +12,10 @@ ...@@ -12,7 +12,10 @@
#import "ICIPAProductModel.h" #import "ICIPAProductModel.h"
#import "Data.h" #import "Data.h"
@interface ICIAPViewController () @interface ICIAPViewController (){
NSTimer * timer;
int timerCount;
}
@property (weak, nonatomic) IBOutlet UIView *weakContentView; @property (weak, nonatomic) IBOutlet UIView *weakContentView;
@property (weak, nonatomic) IBOutlet UIView *yearContentView; @property (weak, nonatomic) IBOutlet UIView *yearContentView;
...@@ -39,6 +42,10 @@ ...@@ -39,6 +42,10 @@
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
[MobClick event:@"pay_page_view"];
[MobClick beginEvent:@"pay_page_stay"];
// Do any additional setup after loading the view. // Do any additional setup after loading the view.
self.weakContentView.layer.cornerRadius = KScaleWidth(8); self.weakContentView.layer.cornerRadius = KScaleWidth(8);
self.yearContentView.layer.cornerRadius = KScaleWidth(8);; self.yearContentView.layer.cornerRadius = KScaleWidth(8);;
...@@ -64,34 +71,40 @@ ...@@ -64,34 +71,40 @@
self.function2Label.text = ICLocalized(@"SecurelyData");//@"安全隐藏敏感数据"; self.function2Label.text = ICLocalized(@"SecurelyData");//@"安全隐藏敏感数据";
self.function3Label.text = ICLocalized(@"ForgetAdvert");//@"忘掉广告和限制"; self.function3Label.text = ICLocalized(@"ForgetAdvert");//@"忘掉广告和限制";
CAKeyframeAnimation *animation = [CAKeyframeAnimation animation]; // CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
animation.keyPath = @"transform.scale";
animation.duration = 1.6;
animation.repeatCount = CGFLOAT_MAX;
animation.values = @[@(1),@(1.05),@(0.96),@(1),@(1.08),@(0.98),@(1)];
animation.keyTimes = @[@(0),@(0.13),@(0.26),@(0.39),@(0.52),@(0.9),@(1)];
animation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
[self.yearContentView.layer addAnimation:animation forKey:nil];
// CABasicAnimation * animation = [[CABasicAnimation alloc] init];
// animation.duration = 1.f;
// animation.beginTime = 0.f;
// animation.fromValue = @(0.95);
// animation.toValue = @(1.05);
// animation.keyPath = @"transform.scale"; // animation.keyPath = @"transform.scale";
// animation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]; // animation.duration = 1.6;
// animation.autoreverses = true; // animation.repeatCount = CGFLOAT_MAX;
// animation.repeatCount = MAXFLOAT; // animation.values = @[@(1),@(1.05),@(0.96),@(1),@(1.08),@(0.98),@(1)];
// [self.yearContentView.layer addAnimation:animation forKey: @"transform.scale"]; // animation.keyTimes = @[@(0),@(0.13),@(0.26),@(0.39),@(0.52),@(0.9),@(1)];
// animation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
// [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
// [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
// [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
// [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
// [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],
// [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
// [self.yearContentView.layer addAnimation:animation forKey:nil];
CABasicAnimation * animation = [[CABasicAnimation alloc] init];
animation.duration = .66f;
animation.beginTime = 0.f;
animation.fromValue = @(0.94);
animation.toValue = @(1.00);
animation.keyPath = @"transform.scale";
animation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
animation.autoreverses = true;
animation.repeatCount = MAXFLOAT;
[self.yearContentView.layer addAnimation:animation forKey: @"transform.scale"];
}
- (void)dealloc{
[MobClick endEvent:@"pay_page_stay"];
NSLog(@"ICIAPViewController dealloc");
}
- (void)timerStart {
timerCount++;
} }
-(void)getIpaList { -(void)getIpaList {
...@@ -129,7 +142,7 @@ ...@@ -129,7 +142,7 @@
} }
- (void)selectedWeakAction { - (void)selectedWeakAction {
[MobClick event:@"pay_weekly"]; [MobClick event:@"pay_week_vip_click"];
if (self.products.count == 0){ if (self.products.count == 0){
return; return;
} }
...@@ -139,11 +152,11 @@ ...@@ -139,11 +152,11 @@
break; break;
} }
} }
[self startPlanAction:_currentProduct]; [self startPlanAction:_currentProduct index:1];
} }
- (void)selectedYearAction { - (void)selectedYearAction {
[MobClick event:@"pay_yearly"]; [MobClick event:@"pay_year_vip_click"];
if (self.products.count == 0){ if (self.products.count == 0){
return; return;
} }
...@@ -153,7 +166,7 @@ ...@@ -153,7 +166,7 @@
break; break;
} }
} }
[self startPlanAction:_currentProduct]; [self startPlanAction:_currentProduct index:0];
} }
- (void)viewWillAppear:(BOOL)animated { - (void)viewWillAppear:(BOOL)animated {
...@@ -163,13 +176,13 @@ ...@@ -163,13 +176,13 @@
// dismiss // dismiss
- (IBAction)dismissAction { - (IBAction)dismissAction {
[MobClick event:@"close_trial_page"]; [MobClick event:@"pay_payment_close_click"];
[self dismissViewControllerAnimated:true completion:nil]; [self dismissViewControllerAnimated:true completion:nil];
} }
// 恢复购买 // 恢复购买
- (IBAction)restoreAction { - (IBAction)restoreAction {
[MobClick event:@"resume_pay"]; [MobClick event:@"pay_restore_click"];
[ICPurchaseManager restorePurchasesWithSuccess:^{ [ICPurchaseManager restorePurchasesWithSuccess:^{
[[ICUserManager shared] getUserInfo:^(ZTUserInfoModel * _Nonnull model) { [[ICUserManager shared] getUserInfo:^(ZTUserInfoModel * _Nonnull model) {
[self dismissViewControllerAnimated:true completion:nil]; [self dismissViewControllerAnimated:true completion:nil];
...@@ -180,14 +193,21 @@ ...@@ -180,14 +193,21 @@
} }
// 开始计划 // 开始计划
- (IBAction)startPlanAction:(ICIPAProductModel *)model { - (IBAction)startPlanAction:(ICIPAProductModel *)model index:(NSInteger)index{
[MobClick event:@"description_pay_button"]; [MobClick event:@"description_pay_button"];
[MobClick event:@"trial_use"]; [MobClick event:@"trial_use"];
NSString *payTypeStr = model.productId; NSString *payTypeStr = model.productId;
__weak typeof(self) weakSelf = self; __weak typeof(self) weakSelf = self;
[ICPurchaseManager purchaseWithProductIdWithProductId:payTypeStr inView:self.view success:^{ [ICPurchaseManager purchaseWithProductIdWithProductId:payTypeStr inView:self.view success:^{
[MobClick event:@"pay_suc"]; // [MobClick event:@"pay_suc"];
if (index == 0) {
[MobClick event:@"pay_year_success"];
}else if (index == 1){
[MobClick event:@"pay_week_success"];
}
[[ICUserManager shared] getUserInfo:^(ZTUserInfoModel * _Nonnull model) { [[ICUserManager shared] getUserInfo:^(ZTUserInfoModel * _Nonnull model) {
[weakSelf dismissViewControllerAnimated:true completion:nil]; [weakSelf dismissViewControllerAnimated:true completion:nil];
} failure:^{ } failure:^{
...@@ -216,8 +236,4 @@ ...@@ -216,8 +236,4 @@
[self.navigationController pushViewController:webView animated:true]; [self.navigationController pushViewController:webView animated:true];
} }
- (void)dealloc{
NSLog(@"ICIAPViewController dealloc");
}
@end @end
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
#import "ICAdsTrackModel.h" #import "ICAdsTrackModel.h"
#import "ICCustomLaunchScreenView.h" #import "ICCustomLaunchScreenView.h"
#import "ZJGuideConfig.h"
#define kAPP_Version @"app_version" #define kAPP_Version @"app_version"
@interface AppDelegate ()<BUSplashAdDelegate> @interface AppDelegate ()<BUSplashAdDelegate>
...@@ -50,21 +52,17 @@ ...@@ -50,21 +52,17 @@
self.window = [[UIWindow alloc] initWithFrame: UIScreen.mainScreen.bounds]; self.window = [[UIWindow alloc] initWithFrame: UIScreen.mainScreen.bounds];
self.window.backgroundColor = [UIColor whiteColor]; // 窗口背景色 self.window.backgroundColor = [UIColor whiteColor]; // 窗口背景色
[self.window makeKeyAndVisible];
//当前运行的版本
NSString *currentVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
//本地保存的版本号
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSString *localVersion = [userDefault objectForKey:kAPP_Version];
[[ICUserManager shared] getServiceInfo];
if ([currentVersion isEqualToString:localVersion]) {
//已经运行过该版本
ICHomeViewController *homeVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICHomeViewController"]; ICHomeViewController *homeVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICHomeViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC];
self.window.rootViewController = navc; self.window.rootViewController = navc;
// NSString *codeId = [[data Read] objectForKey:kAdCodeId];
// [self setupBUAdSDK:codeId];
[ZJGuideConfig configWithWindow:self.window finishMainVC:navc showGuide:^(BOOL result) {
if (!result) {
if ([ICUserManager shared].isShowSplashAd) { if ([ICUserManager shared].isShowSplashAd) {
if ([ICUserManager shared].isMember) { if ([ICUserManager shared].isMember) {
NSString *codeId = [[data Read] objectForKey:kAdCodeId]; NSString *codeId = [[data Read] objectForKey:kAdCodeId];
...@@ -82,15 +80,47 @@ ...@@ -82,15 +80,47 @@
[self setupBUAdSDK:codeId]; [self setupBUAdSDK:codeId];
} }
} }
} else {
//同意 更新储存版本 切换rootVC
[userDefault setObject:currentVersion forKey:kAPP_Version];
//ICGuideViewController
ICGuideViewController *guideVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICGuideViewController"];
self.window.rootViewController = guideVC;
} }
}];
[self.window makeKeyAndVisible]; // 让当前窗口成为主窗口 // //当前运行的版本
// NSString *currentVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
// //本地保存的版本号
// NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
// NSString *localVersion = [userDefault objectForKey:kAPP_Version];
//
// [[ICUserManager shared] getServiceInfo];
//
// if ([currentVersion isEqualToString:localVersion]) {
// //已经运行过该版本
// ICHomeViewController *homeVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICHomeViewController"];
// ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC];
// self.window.rootViewController = navc;
//
// if ([ICUserManager shared].isShowSplashAd) {
// if ([ICUserManager shared].isMember) {
// NSString *codeId = [[data Read] objectForKey:kAdCodeId];
// if (codeId.length > 0) {
// [self setupBUAdSDK:codeId];
// }
// } else {
// dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
// [[NSNotificationCenter defaultCenter] postNotificationName:kSplashAdViewDismissed object:nil];
// });
// }
// } else {
// NSString *codeId = [[data Read] objectForKey:kAdCodeId];
// if (codeId.length > 0) {
// [self setupBUAdSDK:codeId];
// }
// }
// } else {
// //同意 更新储存版本 切换rootVC
// [userDefault setObject:currentVersion forKey:kAPP_Version];
// //ICGuideViewController
// ICGuideViewController *guideVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICGuideViewController"];
// self.window.rootViewController = guideVC;
// }
NSMutableDictionary *dict = @{@"event": @"guazinovel", @"action": @"app_start", @"value": @""}.mutableCopy; NSMutableDictionary *dict = @{@"event": @"guazinovel", @"action": @"app_start", @"value": @""}.mutableCopy;
[[ZTNetworkTools shared] postWithLogCollection:logCollection parameters:dict success:^(id _Nullable __autoreleasing * _Nullable response) { [[ZTNetworkTools shared] postWithLogCollection:logCollection parameters:dict success:^(id _Nullable __autoreleasing * _Nullable response) {
......
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
[contentView addSubview:iconView]; [contentView addSubview:iconView];
[iconView mas_makeConstraints:^(MASConstraintMaker *make) { [iconView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(self); make.centerX.mas_equalTo(self);
make.centerY.mas_equalTo(self).mas_offset(-50); make.centerY.mas_equalTo(self).mas_offset(-80);
}]; }];
UILabel *tipLabel = [[UILabel alloc] init]; UILabel *tipLabel = [[UILabel alloc] init];
tipLabel.text = title; tipLabel.text = title;
tipLabel.textColor = kColorFromRGB(0xCED3DB); tipLabel.textColor = kColorFromRGB(0x333333);
tipLabel.font = [UIFont systemFontOfSize:14]; tipLabel.font = [UIFont systemFontOfSize:16];
tipLabel.textAlignment = NSTextAlignmentCenter; tipLabel.textAlignment = NSTextAlignmentCenter;
[contentView addSubview:tipLabel]; [contentView addSubview:tipLabel];
[tipLabel mas_makeConstraints:^(MASConstraintMaker *make) { [tipLabel mas_makeConstraints:^(MASConstraintMaker *make) {
......
//
// ZJGuideConfig.h
// ZhiJi
//
// Created by 明津李 on 2020/6/14.
// Copyright © 2020 Company. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ZJGuideConfig : NSObject
+ (instancetype)shared;
+ (void)configWithWindow:(UIWindow *)window finishMainVC:(UIViewController *)finishMainVC showGuide:(void(^)(BOOL))result;
@end
NS_ASSUME_NONNULL_END
//
// ZJGuideConfig.m
// ZhiJi
//
// Created by 明津李 on 2020/6/14.
// Copyright © 2020 Company. All rights reserved.
//
#import "ZJGuideConfig.h"
#import "ICGuideViewController.h"
#import "ICUserManager.h"
#import "LaunchScreenPlaceHolderView.h"
@interface ZJGuideConfig ()
@property (nonatomic, strong) ICGuideViewController * vc;
@property (nonatomic, strong) LaunchScreenPlaceHolderView * launchScreen;
@property (nonatomic, strong) UIViewController * finishMainVC;
@property (nonatomic, strong) UIWindow * currentWindow;
@end
#define kAPP_Version @"app_version"
@implementation ZJGuideConfig
+ (instancetype)shared
{
static ZJGuideConfig *config;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
ICGuideViewController *guideVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICGuideViewController"];
config = [[ZJGuideConfig alloc] init];
//创建guide控制器
config.vc = guideVC;
// [[ICUserManager shared] getUserInfo:nil failure:nil];
// [[ZJUserInfoManager shared] getServiceInfo:nil];
});
return config;
}
+ (void)configWithWindow:(UIWindow *)window finishMainVC:(UIViewController *)finishMainVC showGuide:(void(^)(BOOL))result{
ZJGuideConfig * config = [ZJGuideConfig shared];
// [config checkVersionWithWindow:window finishMainVC:finishMainVC];
[config fakeLaunchScreenWithWindow:window finishMainVC:finishMainVC showGuide:result];
}
- (void)fakeLaunchScreenWithWindow:(UIWindow *)window finishMainVC:(UIViewController *)finishMainVC showGuide:(void(^)(BOOL))result{
self.currentWindow = window;
self.launchScreen = [[UINib nibWithNibName:@"LaunchScreenPlaceHolderView" bundle:nil] instantiateWithOwner:self options:nil].firstObject;
// self.launchScreen.frame = CGRectMake(0, [[UIApplication sharedApplication] statusBarFrame].size.height, window.bounds.size.width, window.bounds.size.height-[[UIApplication sharedApplication] statusBarFrame].size.height);
// self.launchScreen.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
[window addSubview:self.launchScreen];
[self.launchScreen layoutIfNeeded];
[self.launchScreen layoutSubviews];
[self.launchScreen mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(window);
}];
__weak typeof(self) weakSelf = self;
self.launchScreen.finishCallBack = ^{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
dispatch_sync(dispatch_get_main_queue(), ^{
[weakSelf checkVersionWithWindow:window finishMainVC:finishMainVC showGuide:result];
[weakSelf.launchScreen removeFromSuperview];
});
});
};
}
- (void)checkVersionWithWindow:(UIWindow *)window finishMainVC:(UIViewController *)finishMainVC showGuide:(void(^)(BOOL))result{
ZJGuideConfig * config = [ZJGuideConfig shared];
//当前运行的版本
NSString *currentVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
//本地保存的版本号
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSString *localVersion = [userDefault objectForKey:kAPP_Version];
if ([currentVersion isEqualToString:localVersion]) {
//已经运行过该版本
window.rootViewController = finishMainVC;
if (result) {
result(NO);
}
} else {
[MobClick event:@"app_startup_show"];
config.vc.clickCallBack = ^(BOOL agree) {
if (agree) {
//同意 更新储存版本 切换rootVC
[userDefault setObject:currentVersion forKey:kAPP_Version];
[userDefault synchronize];
window.rootViewController = finishMainVC;
}else{
exit(0);
}
};
if (result) {
result(YES);
}
window.rootViewController = config.vc;
}
}
@end
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
@property (strong, nonatomic) SCHomeHeaderView * headerView; @property (strong, nonatomic) SCHomeHeaderView * headerView;
@property (strong, nonatomic) NSArray * dataSource; @property (strong, nonatomic) NSArray * dataSource;
IBInspectable
@end @end
@implementation ICHomeViewController @implementation ICHomeViewController
...@@ -39,12 +41,13 @@ ...@@ -39,12 +41,13 @@
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
_dataSource = @[@{@"image":@"home_cell_0", @"title":@"照片和视频", @"details":@"清除相似照片与视频"}, [MobClick event:@"home_pop"];
_dataSource = @[@{@"image":@"home_cell_0", @"title":@"照片和视频", @"details":@"清理重复照片和视频"},
@{@"image":@"home_cell_2", @"title":@"日历和提醒事项", @"details":@"清理过期提醒事项"}, @{@"image":@"home_cell_2", @"title":@"日历和提醒事项", @"details":@"清理过期提醒事项"},
@{@"image":@"home_cell_3", @"title":@"手机清灰", @"details":@"除尘·修复听筒音量"}, @{@"image":@"home_cell_3", @"title":@"赫兹声波", @"details":@""},
@{@"image":@"home_cell_4", @"title":@"网速检测", @"details":@"一键测试你的网络速度"}, @{@"image":@"home_cell_5", @"title":@"声波助手", @"details":@""},
@{@"image":@"home_cell_5", @"title":@"分贝检测", @"details":@"专业的噪音检测仪"}, @{@"image":@"home_cell_4", @"title":@"网络测速", @"details":@""},
@{@"image":@"home_cell_6", @"title":@"电池寿命", @"details":@"延长iPhone电池寿命"}, @{@"image":@"home_cell_6", @"title":@"电池小贴士", @"details":@""},
/*@{@"image":@"home_cell_7", @"title":@"相册统计", @"details":@"种类占比"}*/]; /*@{@"image":@"home_cell_7", @"title":@"相册统计", @"details":@"种类占比"}*/];
[self setupUI]; [self setupUI];
...@@ -52,7 +55,7 @@ ...@@ -52,7 +55,7 @@
[[ICUserManager shared] loginAndGetUserInfo:^(ZTUserInfoModel * _Nonnull model) { [[ICUserManager shared] loginAndGetUserInfo:^(ZTUserInfoModel * _Nonnull model) {
[[ICUserManager shared] getServiceInfo]; [[ICUserManager shared] getServiceInfo];
if (!model.isMember) { if (![ICUserManager shared].isMember) {
Data * data = [[Data alloc] init]; Data * data = [[Data alloc] init];
NSDictionary * dic = [[data Read] objectForKey:@"open1close0"]; NSDictionary * dic = [[data Read] objectForKey:@"open1close0"];
...@@ -150,7 +153,7 @@ ...@@ -150,7 +153,7 @@
NSLog(@"%.1f/%.0f", usedMem, totalMem); NSLog(@"%.1f/%.0f", usedMem, totalMem);
NSLog(@"%.2f", usedMem/totalMem); NSLog(@"%.2f", usedMem/totalMem);
self.headerView.usedSpaceScaleLabel.text = [NSString stringWithFormat:@"%@ %.0f%%",ICLocalized(@"Used"), [[ICDiskKit takenSpace] floatValue]/totalMem * 100]; self.headerView.usedSpaceScaleLabel.text = [NSString stringWithFormat:@"%.0f%%", [[ICDiskKit takenSpace] floatValue]/totalMem * 100];
self.headerView.spacePercentLabel.text = [NSString stringWithFormat:@"%@/%.0fGB", [ICDiskKit takenSpace], totalMem]; self.headerView.spacePercentLabel.text = [NSString stringWithFormat:@"%@/%.0fGB", [ICDiskKit takenSpace], totalMem];
} }
...@@ -230,6 +233,14 @@ ...@@ -230,6 +233,14 @@
cell.titleLab.text = [dic objectForKey:@"title"]; cell.titleLab.text = [dic objectForKey:@"title"];
cell.detailsLab.text = [dic objectForKey:@"details"]; cell.detailsLab.text = [dic objectForKey:@"details"];
if (cell.detailsLab.text.length == 0) {
cell.titleBottomConstraint.constant = -2+cell.titleLab.frame.size.height/2;
cell.detailsLab.hidden = YES;
}else{
cell.titleBottomConstraint.constant = -2;
cell.detailsLab.hidden = NO;
}
if (indexPath.item%2!=0) { if (indexPath.item%2!=0) {
cell.right.hidden = YES; cell.right.hidden = YES;
}else{ }else{
...@@ -319,6 +330,7 @@ ...@@ -319,6 +330,7 @@
break; break;
case 1: case 1:
{ {
[MobClick event:@"home_overdue_calendar"];
ICCalendarManageController *calendarVC = [[ICCalendarManageController alloc] init]; ICCalendarManageController *calendarVC = [[ICCalendarManageController alloc] init];
[self.navigationController pushViewController:calendarVC animated:true]; [self.navigationController pushViewController:calendarVC animated:true];
} }
...@@ -329,30 +341,33 @@ ...@@ -329,30 +341,33 @@
ICCleanDustViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICCleanDustViewController"]; ICCleanDustViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICCleanDustViewController"];
[self.navigationController pushViewController:vc animated:true]; [self.navigationController pushViewController:vc animated:true];
}else { }else {
[MobClick event:@"phone_deash_clean"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
} }
} }
break; break;
case 3: case 4:
{ {
if ([ICUserManager shared].isMember) { if ([ICUserManager shared].isMember) {
ICNetworkSpeedViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICNetworkSpeedViewController"]; ICNetworkSpeedViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICNetworkSpeedViewController"];
[self.navigationController pushViewController:vc animated:true]; [self.navigationController pushViewController:vc animated:true];
}else { }else {
[MobClick event:@"network_speed_detection"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
} }
} }
break; break;
case 4: case 3:
{ {
if ([ICUserManager shared].isMember) { if ([ICUserManager shared].isMember) {
ICDbTestViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICDbTestViewController"]; ICDbTestViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICDbTestViewController"];
[self.navigationController pushViewController:vc animated:true]; [self.navigationController pushViewController:vc animated:true];
}else { }else {
[MobClick event:@"db_detection"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
...@@ -365,6 +380,7 @@ ...@@ -365,6 +380,7 @@
ICBatteryCareViewController *vc = [[ICBatteryCareViewController alloc] init]; ICBatteryCareViewController *vc = [[ICBatteryCareViewController alloc] init];
[self.navigationController pushViewController:vc animated:true]; [self.navigationController pushViewController:vc animated:true];
}else { }else {
[MobClick event:@"battery_life"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
......
...@@ -38,7 +38,12 @@ ...@@ -38,7 +38,12 @@
- (void)viewDidLoad { - (void)viewDidLoad {
[super viewDidLoad]; [super viewDidLoad];
if (self.photoType == LocationPhoto){
}else{
self.navigationItem.title = @"屏幕截图"; self.navigationItem.title = @"屏幕截图";
}
self.itemSource = [NSMutableArray array]; self.itemSource = [NSMutableArray array];
...@@ -60,7 +65,7 @@ ...@@ -60,7 +65,7 @@
UIButton *selectBtn = [[UIButton alloc] init]; UIButton *selectBtn = [[UIButton alloc] init];
[selectBtn setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal]; [selectBtn setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[selectBtn setTitle: ICLocalized(@"CancelAll") forState:UIControlStateSelected]; [selectBtn setTitle: ICLocalized(@"CancelAll") forState:UIControlStateSelected];
[selectBtn setTitleColor:[UIColor colorWithHex:0x030303] forState:UIControlStateNormal]; [selectBtn setTitleColor:kMassColor forState:UIControlStateNormal];
selectBtn.titleLabel.font = [UIFont systemFontOfSize:16]; selectBtn.titleLabel.font = [UIFont systemFontOfSize:16];
[selectBtn addTarget:self action:@selector(selectAllOrNotAction:) forControlEvents:UIControlEventTouchUpInside]; [selectBtn addTarget:self action:@selector(selectAllOrNotAction:) forControlEvents:UIControlEventTouchUpInside];
self.selectAllBtn = selectBtn; self.selectAllBtn = selectBtn;
...@@ -70,6 +75,9 @@ ...@@ -70,6 +75,9 @@
UIButton *deleteBtn = [[UIButton alloc] init]; UIButton *deleteBtn = [[UIButton alloc] init];
[deleteBtn setBackgroundImage:[UIImage imageNamed:@"global_green_btn_bg"] forState:UIControlStateNormal]; [deleteBtn setBackgroundImage:[UIImage imageNamed:@"global_green_btn_bg"] forState:UIControlStateNormal];
[deleteBtn setTitle: ICLocalized(@"DeleteScreenshots") forState:UIControlStateNormal]; //@"删除截图" [deleteBtn setTitle: ICLocalized(@"DeleteScreenshots") forState:UIControlStateNormal]; //@"删除截图"
if (self.photoType == LocationPhoto){
[deleteBtn setTitle: @"删除照片" forState:UIControlStateNormal];
}
[self.view addSubview:deleteBtn]; [self.view addSubview:deleteBtn];
[self.view bringSubviewToFront:deleteBtn]; [self.view bringSubviewToFront:deleteBtn];
...@@ -222,7 +230,10 @@ ...@@ -222,7 +230,10 @@
- (UICollectionView *)collectionView { - (UICollectionView *)collectionView {
if (!_collectionView) { if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
CGFloat itemCount = 4; CGFloat itemCount = 3;
if (self.photoType == LocationPhoto){
itemCount = 2;
}
CGFloat distance = 8; CGFloat distance = 8;
CGFloat width = self.view.frame.size.width; CGFloat width = self.view.frame.size.width;
CGFloat itemWH = (width - distance * (itemCount + 1)) / itemCount - 1; CGFloat itemWH = (width - distance * (itemCount + 1)) / itemCount - 1;
......
...@@ -85,6 +85,7 @@ ...@@ -85,6 +85,7 @@
for (NSArray *models in dict.allValues) { for (NSArray *models in dict.allValues) {
[items addObjectsFromArray:models]; [items addObjectsFromArray:models];
} }
vc.title = dict.allKeys.firstObject;
vc.currentlocationGroudIndex = indexPath.row; vc.currentlocationGroudIndex = indexPath.row;
vc.similarArr = items; vc.similarArr = items;
vc.photoType = LocationPhoto; vc.photoType = LocationPhoto;
......
...@@ -72,6 +72,7 @@ ...@@ -72,6 +72,7 @@
NSLog(@"%@ -- %@", startDate, endDate); NSLog(@"%@ -- %@", startDate, endDate);
// weakSelf.photoMgr.startDate = startDate; // weakSelf.photoMgr.startDate = startDate;
// weakSelf.photoMgr.endDate = endDate; // weakSelf.photoMgr.endDate = endDate;
[MobClick event:@"photo_select_time_period"];
NSMutableArray *temp = [NSMutableArray array]; NSMutableArray *temp = [NSMutableArray array];
for (ICBasePhotoModel *model in weakSelf.photoMgr.snapshotArray) { for (ICBasePhotoModel *model in weakSelf.photoMgr.snapshotArray) {
...@@ -124,7 +125,12 @@ ...@@ -124,7 +125,12 @@
// [MBProgressHUD showLoading:@"正在查询,请稍后..." toView:self.view]; // [MBProgressHUD showLoading:@"正在查询,请稍后..." toView:self.view];
[self.photoMgr loadLocationPhotoWithProcess:^(NSInteger current, NSInteger total) { [self.photoMgr loadLocationPhotoWithProcess:^(NSInteger current, NSInteger total) {
NSLog(@"loadLocationPhotoWithProcess %ld", (long)current); NSLog(@"loadLocationPhotoWithProcess %ld", (long)current);
if (current == 0) {
cell.progressView.strokeStart = 0;
}else{
cell.progressView.strokeStart = ((CGFloat)current / (CGFloat)(total / 4)); cell.progressView.strokeStart = ((CGFloat)current / (CGFloat)(total / 4));
}
// cell.progressView.strokeStart = ((CGFloat)current / (CGFloat)(total / 4));
cell.countLabel.text = [NSString stringWithFormat:@"%lu", (unsigned long)weakSelf.photoMgr.locationArray.count]; cell.countLabel.text = [NSString stringWithFormat:@"%lu", (unsigned long)weakSelf.photoMgr.locationArray.count];
} completionHandler:^(BOOL success, NSError *error) { } completionHandler:^(BOOL success, NSError *error) {
// [MBProgressHUD hideHUDForView:self.view]; // [MBProgressHUD hideHUDForView:self.view];
...@@ -261,6 +267,35 @@ ...@@ -261,6 +267,35 @@
} }
} else { } else {
switch (indexPath.row) {
case 0: {
[MobClick event:@"photo_and_video_screenshot"];
}
break;
case 1: {
[MobClick event:@"photo_and_video_spot"];
}
break;
case 2: {
[MobClick event:@"photo_and_video_similar_photo"];
}
break;
case 3: {
[MobClick event:@"photo_and_video_similar_video"];
}
break;
case 4: {
[MobClick event:@"photo_and_video_similar_live_photo"];
}
break;
case 5: {
[MobClick event:@"photo_and_video_similar_burst_photo"];
}
break;
default:
break;
}
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
......
...@@ -127,7 +127,7 @@ ...@@ -127,7 +127,7 @@
[self screenshotDetailAction]; [self screenshotDetailAction];
break; break;
case 2: case 2:
[MobClick event:@"clean_now_similar_video"];
break; break;
case 3: case 3:
[self livePhotoDetailAction]; [self livePhotoDetailAction];
...@@ -248,7 +248,7 @@ ...@@ -248,7 +248,7 @@
self.screenshotContentView.hidden = false; self.screenshotContentView.hidden = false;
self.livePhotoContentView.hidden = false; self.livePhotoContentView.hidden = false;
self.similarPhotoContentView.hidden = false; self.similarPhotoContentView.hidden = false;
self.similarVideoContentView.hidden = true; self.similarVideoContentView.hidden = false;
self.pauseButton.hidden = true; self.pauseButton.hidden = true;
self.clearAllButton.hidden = false; self.clearAllButton.hidden = false;
self.stepTipLabel.hidden = true; self.stepTipLabel.hidden = true;
...@@ -260,6 +260,7 @@ ...@@ -260,6 +260,7 @@
[MBProgressHUD showError: ICLocalized(@"NoPhotosCleanup")];//@"无照片可清理"]; [MBProgressHUD showError: ICLocalized(@"NoPhotosCleanup")];//@"无照片可清理"];
} }
} else { } else {
[MobClick event:@"clean_now_delete_all"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
...@@ -297,6 +298,7 @@ ...@@ -297,6 +298,7 @@
vc.navigationItem.title = ICLocalized(@"ScreenCapture"); //@"屏幕截图"; vc.navigationItem.title = ICLocalized(@"ScreenCapture"); //@"屏幕截图";
[self.navigationController pushViewController:vc animated:YES]; [self.navigationController pushViewController:vc animated:YES];
} else { } else {
[MobClick event:@"clean_now_screenshot"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
...@@ -312,6 +314,7 @@ ...@@ -312,6 +314,7 @@
vc.photoType = SimilayLivePhoto; vc.photoType = SimilayLivePhoto;
[self.navigationController pushViewController:vc animated:YES]; [self.navigationController pushViewController:vc animated:YES];
} else { } else {
[MobClick event:@"clean_now_similar_live_photo"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
...@@ -327,6 +330,7 @@ ...@@ -327,6 +330,7 @@
vc.photoType = SimilayNormalPhoto; vc.photoType = SimilayNormalPhoto;
[self.navigationController pushViewController:vc animated:YES]; [self.navigationController pushViewController:vc animated:YES];
} else { } else {
[MobClick event:@"clean_now_similar_photo"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
......
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
UIButton *selectBtn = [[UIButton alloc] init]; UIButton *selectBtn = [[UIButton alloc] init];
[selectBtn setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal]; [selectBtn setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[selectBtn setTitle: ICLocalized(@"CancelAll") forState:UIControlStateSelected]; [selectBtn setTitle: ICLocalized(@"CancelAll") forState:UIControlStateSelected];
[selectBtn setTitleColor:[UIColor colorWithHex:0x030303] forState:UIControlStateNormal]; [selectBtn setTitleColor:kMassColor forState:UIControlStateNormal];
selectBtn.titleLabel.font = [UIFont systemFontOfSize:16]; selectBtn.titleLabel.font = [UIFont systemFontOfSize:16];
[selectBtn addTarget:self action:@selector(selectAllOrNotAction:) forControlEvents:UIControlEventTouchUpInside]; [selectBtn addTarget:self action:@selector(selectAllOrNotAction:) forControlEvents:UIControlEventTouchUpInside];
selectBtn.selected = true; selectBtn.selected = true;
...@@ -191,7 +191,7 @@ ...@@ -191,7 +191,7 @@
[MobClick event:@"similar_live_photo_delete_click"]; [MobClick event:@"similar_live_photo_delete_click"];
break; break;
case SimilayVideoPhoto: case SimilayVideoPhoto:
[MobClick event:@"similar_photo_delete_all_click"]; [MobClick event:@"similar_video_delete_all_click"];
default: default:
break; break;
} }
......
...@@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, weak) IBOutlet UIView * left; @property (nonatomic, weak) IBOutlet UIView * left;
@property (nonatomic, weak) IBOutlet UIView * right; @property (nonatomic, weak) IBOutlet UIView * right;
@property (nonatomic, weak) IBOutlet NSLayoutConstraint * titleBottomConstraint;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<constraint firstAttribute="width" secondItem="Zv4-WU-omb" secondAttribute="height" id="8bM-lL-T2A"/> <constraint firstAttribute="width" secondItem="Zv4-WU-omb" secondAttribute="height" id="8bM-lL-T2A"/>
</constraints> </constraints>
</imageView> </imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="52.3/64 GB" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zHw-24-34Q"> <label hidden="YES" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="52.3/64 GB" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="zHw-24-34Q">
<rect key="frame" x="170.5" y="241.5" width="74.5" height="17"/> <rect key="frame" x="170.5" y="241.5" width="74.5" height="17"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/> <fontDescription key="fontDescription" type="system" pointSize="14"/>
<nil key="textColor"/> <nil key="textColor"/>
......
...@@ -44,12 +44,12 @@ ...@@ -44,12 +44,12 @@
cover.frame = self.contentView.bounds; cover.frame = self.contentView.bounds;
cover.backgroundColor = [[UIColor colorWithHex:0x478DFE] colorWithAlphaComponent:0.3]; cover.backgroundColor = [[UIColor colorWithHex:0x478DFE] colorWithAlphaComponent:0.3];
cover.hidden = true; cover.hidden = true;
[self addSubview:cover]; // [self addSubview:cover];
self.coverView = cover; // self.coverView = cover;
CGFloat selectWH = 20; //frame.size.width * 0.3; CGFloat selectWH = 20; //frame.size.width * 0.3;
CGFloat selectX = frame.size.width - selectWH; CGFloat selectX = frame.size.width - selectWH;
UIButton *selectBtn = [[UIButton alloc] initWithFrame:CGRectMake(selectX - 5, 5, selectWH, selectWH)]; UIButton *selectBtn = [[UIButton alloc] initWithFrame:CGRectMake(selectX - 5, selectX-5, selectWH, selectWH)];
[self addSubview:selectBtn]; [self addSubview:selectBtn];
self.selectBtn = selectBtn; self.selectBtn = selectBtn;
[selectBtn setImage:[UIImage imageNamed:@"contact_choose"] forState:UIControlStateNormal]; [selectBtn setImage:[UIImage imageNamed:@"contact_choose"] forState:UIControlStateNormal];
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>Super Cleaner 需要访问您的相机权限才能分析相似图片和视频</string> <string>Super Cleaner 需要访问您的相机权限才能分析相似图片和视频</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Super Cleaner 需要访问您的麦克风才能进行分贝检测</string> <string>Super Cleaner 需要访问您的麦克风才能进行检测</string>
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>
<string>Super Cleaner 需要访问您的相册权限才能分析相似图片和视频</string> <string>Super Cleaner 需要访问您的相册权限才能分析相似图片和视频</string>
<key>NSRemindersUsageDescription</key> <key>NSRemindersUsageDescription</key>
......
//
// LaunchScreenPlaceHolderView.h
// ZhiJi
//
// Created by 明津李 on 2020/6/29.
// Copyright © 2020 Company. All rights reserved.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface LaunchScreenPlaceHolderView : UIView
@property (nonatomic, copy) void (^finishCallBack)(void);
@end
NS_ASSUME_NONNULL_END
//
// LaunchScreenPlaceHolderView.m
// ZhiJi
//
// Created by 明津李 on 2020/6/29.
// Copyright © 2020 Company. All rights reserved.
//
#import "LaunchScreenPlaceHolderView.h"
#import "ICUserManager.h"
@interface LaunchScreenPlaceHolderView(){
dispatch_source_t timer;
__block int count;
}
@end
@implementation LaunchScreenPlaceHolderView
- (instancetype)init{
if (self = [super init]) {
[self prepare];
}
return self;
}
- (void)awakeFromNib{
[super awakeFromNib];
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder{
if(self = [super initWithCoder:aDecoder]){
[self prepare];
}
return self;
}
- (void)prepare{
[[ICUserManager shared] loginAndGetUserInfo:^(ZTUserInfoModel * _Nonnull model) {
if (self.finishCallBack) {
self.finishCallBack();
}
if(self->timer){
dispatch_source_cancel(self->timer);
}
} failure:^{
if (self.finishCallBack) {
self.finishCallBack();
}
if(self->timer){
dispatch_source_cancel(self->timer);
}
}];
[self setTimer];
}
- (void)setTimer{
count = 3;
timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
if (self->count > 0) {
self->count--;
}else{
if (self.finishCallBack) {
self.finishCallBack();
}
dispatch_source_cancel(self->timer);
}
});
dispatch_resume(timer);
}
- (void)dealloc{
dispatch_source_cancel(self->timer);
}
@end
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097.2" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
<device id="retina5_5" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LaunchScreenPlaceHolderView"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB" customClass="LaunchScreenPlaceHolderView">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="screen_launch_icon" translatesAutoresizingMaskIntoConstraints="NO" id="TeR-ta-q9a">
<rect key="frame" x="93.666666666666686" y="205.66666666666663" width="227" height="205"/>
</imageView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="TeR-ta-q9a" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" constant="-60" id="CXk-t6-QnM"/>
<constraint firstItem="TeR-ta-q9a" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="U2d-g9-nW9"/>
</constraints>
<point key="canvasLocation" x="139" y="90"/>
</view>
</objects>
<resources>
<image name="screen_launch_icon" width="227" height="205"/>
</resources>
</document>
...@@ -58,14 +58,10 @@ static ICUserManager * manager; ...@@ -58,14 +58,10 @@ static ICUserManager * manager;
- (BOOL)isMember { - (BOOL)isMember {
return true;
NSString *dateString = [[NSUserDefaults standardUserDefaults] valueForKeyPath:@"expiryDate"]; NSString *dateString = [[NSUserDefaults standardUserDefaults] valueForKeyPath:@"expiryDate"];
// if (dateString.length <= 0) {
//#ifdef DEBUG
// return YES;
//#else
// return self.model.isMember;
//#endif
// }
if (!dateString) { if (!dateString) {
Data * data = [[Data alloc] init]; Data * data = [[Data alloc] init];
dateString = [NSString stringWithFormat:@"%@ 23:59", [[data Read] objectForKey:@"memberEndTime"]]; dateString = [NSString stringWithFormat:@"%@ 23:59", [[data Read] objectForKey:@"memberEndTime"]];
...@@ -76,13 +72,20 @@ static ICUserManager * manager; ...@@ -76,13 +72,20 @@ static ICUserManager * manager;
NSDate *expiryDate = [formatter dateFromString:dateString]; NSDate *expiryDate = [formatter dateFromString:dateString];
NSLog(@"expiryDate == %@", expiryDate); NSLog(@"expiryDate == %@", expiryDate);
NSLog(@"currentDate %@", [NSDate date]); NSLog(@"currentDate %@", [NSDate date]);
if (self.model) {
return self.model.isMember;
}else{
if ([expiryDate timeIntervalSinceDate:[NSDate date]] > 0) { if ([expiryDate timeIntervalSinceDate:[NSDate date]] > 0) {
return true; return true;
}else{
return false;
}
} }
// else if ([expiryDate timeIntervalSinceDate:[NSDate date]] <= 0) { // else if ([expiryDate timeIntervalSinceDate:[NSDate date]] <= 0) {
// return false; // return false;
// } // }
return self.model.isMember; // return self.model.isMember;
} }
- (NSString *)token{ - (NSString *)token{
......
...@@ -204,6 +204,7 @@ static ZTNetworkTools* _tools = nil; ...@@ -204,6 +204,7 @@ static ZTNetworkTools* _tools = nil;
NSString *bb = [key stringByAppendingFormat:@"=%@", ddd[key]]; NSString *bb = [key stringByAppendingFormat:@"=%@", ddd[key]];
aaa = [aaa stringByAppendingFormat:@"&%@", bb]; aaa = [aaa stringByAppendingFormat:@"&%@", bb];
} }
NSLog(@"%@", [urlString stringByAppendingFormat:@"?%@", aaa]);
NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString: [urlString stringByAppendingFormat:@"?%@", aaa] parameters:nil error:nil]; NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString: [urlString stringByAppendingFormat:@"?%@", aaa] parameters:nil error:nil];
req.timeoutInterval= 10; req.timeoutInterval= 10;
...@@ -455,10 +456,10 @@ static ZTNetworkTools* _tools = nil; ...@@ -455,10 +456,10 @@ static ZTNetworkTools* _tools = nil;
@"iPad4,4" : @"iPad Mini", // (2nd Generation iPad Mini - Wifi) @"iPad4,4" : @"iPad Mini", // (2nd Generation iPad Mini - Wifi)
@"iPad4,5" : @"iPad Mini", // (2nd Generation iPad Mini - Cellular) @"iPad4,5" : @"iPad Mini", // (2nd Generation iPad Mini - Cellular)
@"iPad4,7" : @"iPad Mini", // (3rd Generation iPad Mini - Wifi (model A1599)) @"iPad4,7" : @"iPad Mini", // (3rd Generation iPad Mini - Wifi (model A1599))
@"iPad6,7" : @"iPad Pro (12.9\")", // iPad Pro 12.9 inches - (model A1584) @"iPad6,7" : @"iPad Pro (12.9)", // iPad Pro 12.9 inches - (model A1584)
@"iPad6,8" : @"iPad Pro (12.9\")", // iPad Pro 12.9 inches - (model A1652) @"iPad6,8" : @"iPad Pro (12.9)", // iPad Pro 12.9 inches - (model A1652)
@"iPad6,3" : @"iPad Pro (9.7\")", // iPad Pro 9.7 inches - (model A1673) @"iPad6,3" : @"iPad Pro (9.7)", // iPad Pro 9.7 inches - (model A1673)
@"iPad6,4" : @"iPad Pro (9.7\")" // iPad Pro 9.7 inches - (models A1674 and A1675) @"iPad6,4" : @"iPad Pro (9.7)" // iPad Pro 9.7 inches - (models A1674 and A1675)
}; };
} }
......
...@@ -143,6 +143,11 @@ ...@@ -143,6 +143,11 @@
[self.navigationController pushViewController:calendarVC animated:true]; [self.navigationController pushViewController:calendarVC animated:true];
} }
} else { } else {
if (indexPath.row == 0) {
[MobClick event:@"calendar_and_reminder_overdue_calender"];
} else {
[MobClick event:@"calendar_and_reminder_overdue_reminder"];
}
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"]; ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC]; ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil]; [self presentViewController:navc animated:true completion:nil];
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
self.selectAllButton = [[UIButton alloc] init]; self.selectAllButton = [[UIButton alloc] init];
[self.selectAllButton setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal]; [self.selectAllButton setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[self.selectAllButton addTarget:self action: @selector(chooseAction) forControlEvents:UIControlEventTouchUpInside]; [self.selectAllButton addTarget:self action: @selector(chooseAction) forControlEvents:UIControlEventTouchUpInside];
[self.selectAllButton setTitleColor:UIColor.blackColor forState: UIControlStateNormal]; [self.selectAllButton setTitleColor:kMassColor forState: UIControlStateNormal];
self.selectAllButton.titleLabel.font = [UIFont systemFontOfSize:17]; self.selectAllButton.titleLabel.font = [UIFont systemFontOfSize:17];
[self.selectAllButton sizeToFit]; [self.selectAllButton sizeToFit];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: self.selectAllButton]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: self.selectAllButton];
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
self.selectAllButton = [[UIButton alloc] init]; self.selectAllButton = [[UIButton alloc] init];
[self.selectAllButton setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal]; [self.selectAllButton setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[self.selectAllButton addTarget:self action: @selector(chooseAction) forControlEvents:UIControlEventTouchUpInside]; [self.selectAllButton addTarget:self action: @selector(chooseAction) forControlEvents:UIControlEventTouchUpInside];
[self.selectAllButton setTitleColor:UIColor.blackColor forState: UIControlStateNormal]; [self.selectAllButton setTitleColor:kMassColor forState: UIControlStateNormal];
self.selectAllButton.titleLabel.font = [UIFont systemFontOfSize:17]; self.selectAllButton.titleLabel.font = [UIFont systemFontOfSize:17];
[self.selectAllButton sizeToFit]; [self.selectAllButton sizeToFit];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: self.selectAllButton]; self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: self.selectAllButton];
......
...@@ -35,6 +35,7 @@ typedef enum : NSUInteger { ...@@ -35,6 +35,7 @@ typedef enum : NSUInteger {
@property (weak, nonatomic) IBOutlet UIView *sliderContentView; @property (weak, nonatomic) IBOutlet UIView *sliderContentView;
@property (weak, nonatomic) IBOutlet UIImageView *centerImageView; @property (weak, nonatomic) IBOutlet UIImageView *centerImageView;
@property (weak, nonatomic) IBOutlet UIImageView *centerBgImageView;
@property (nonatomic, assign) ICPlayVoiceType voiceType; @property (nonatomic, assign) ICPlayVoiceType voiceType;
...@@ -156,19 +157,22 @@ typedef enum : NSUInteger { ...@@ -156,19 +157,22 @@ typedef enum : NSUInteger {
switch (sender.tag) { switch (sender.tag) {
case 1000: case 1000:
self.centerImageView.image = [UIImage imageNamed: @"tool_dust_image"]; self.centerImageView.image = [UIImage imageNamed: @"tool_clean_dust_center"];
self.centerBgImageView.image = [UIImage imageNamed:@"tool_clean_dust_center_bg"];
self.voiceType = ClearDustType; self.voiceType = ClearDustType;
self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"]; self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"];
break; break;
case 1001: case 1001:
self.centerImageView.image = [UIImage imageNamed: @"tool_mos_image"]; self.centerImageView.image = [UIImage imageNamed: @"tool_drive_mos_center"];
self.centerBgImageView.image = nil;
self.voiceType = DriveMosType; self.voiceType = DriveMosType;
self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon"]; self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"];
break; break;
case 1002: case 1002:
self.centerImageView.image = [UIImage imageNamed: @"tool_pet_icon"]; self.centerImageView.image = [UIImage imageNamed: @"tool_drive_pet_center"];
self.centerBgImageView.image = nil;
self.voiceType = DrivePetType; self.voiceType = DrivePetType;
self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon"]; self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"];
break; break;
default: default:
break; break;
......
...@@ -139,11 +139,11 @@ ...@@ -139,11 +139,11 @@
networkSpeed = [[QBTools formattedFileSize:speed] floatValue]; networkSpeed = [[QBTools formattedFileSize:speed] floatValue];
unit = @"MB"; unit = @"MB";
} }
networkSpeed = [speedStr floatValue]; // networkSpeed = [speedStr floatValue];
[weakSelf refreshDownloadDashboard: networkSpeed]; [weakSelf refreshDownloadDashboard: networkSpeed];
self.board.speedUnit = unit; self.board.speedUnit = unit;
self.board.mbpsValue = networkSpeed; self.board.mbpsValue = [speedStr floatValue];;
} finishMeasureBlock:^(float speed) { } finishMeasureBlock:^(float speed) {
NSString* speedStr = [NSString stringWithFormat:@"%@/S", [QBTools formattedFileSize:speed]]; NSString* speedStr = [NSString stringWithFormat:@"%@/S", [QBTools formattedFileSize:speed]];
......
...@@ -90,35 +90,56 @@ class ICDbDashboardLayer: CALayer { ...@@ -90,35 +90,56 @@ class ICDbDashboardLayer: CALayer {
override func draw(in ctx: CGContext) { override func draw(in ctx: CGContext) {
let radius = self.frame.width * 0.45 let radius = self.frame.width * 0.38
let center = CGPoint(x: self.frame.width * 0.5, y: self.frame.height * 0.5) let center = CGPoint(x: self.frame.width * 0.5, y: self.frame.height * 0.5)
let endAngle = self.number * CGFloat.pi * 1.5 + CGFloat.pi * 0.75 let endAngle = self.number * CGFloat.pi * 1.3 + CGFloat.pi * 0.86
ctx.setLineWidth(24) let outerEndAngle = self.number * CGFloat.pi * 1.24 + CGFloat.pi * 0.88
print("\(self.number)")
ctx.setLineWidth(18)
ctx.setStrokeColor(UIColor(hexString: "E5E5E5").cgColor) ctx.setStrokeColor(UIColor(hexString: "E5E5E5").cgColor)
ctx.setLineCap(.butt) ctx.setLineCap(.butt)
ctx.addArc(center: center, radius: radius - 10, startAngle: CGFloat.pi * 0.75, endAngle: CGFloat.pi * 0.25, clockwise: false) ctx.addArc(center: center, radius: radius - 10, startAngle: CGFloat.pi * 0.86, endAngle: CGFloat.pi * 0.15, clockwise: false)
// phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0 // phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0
ctx.setLineDash(phase: 0, lengths: [3, 10]) ctx.setLineDash(phase: 0, lengths: [3, 10])
ctx.strokePath() ctx.strokePath()
ctx.setLineWidth(24) ctx.setLineWidth(18)
ctx.setStrokeColor(massColor.cgColor) ctx.setStrokeColor(massColor.cgColor)
ctx.setLineCap(.butt) ctx.setLineCap(.butt)
ctx.addArc(center: center, radius: radius - 10, startAngle: CGFloat.pi * 0.75, endAngle: endAngle, clockwise: false) ctx.addArc(center: center, radius: radius - 10, startAngle: CGFloat.pi * 0.86, endAngle: endAngle, clockwise: false)
// phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0 // phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0
// lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个 // lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个
ctx.setLineDash(phase: 0, lengths: [3, 10]) ctx.setLineDash(phase: 0, lengths: [3, 10])
ctx.strokePath() ctx.strokePath()
ctx.setLineWidth(5) // ctx.setLineWidth(5)
ctx.setStrokeColor(UIColor(hexString: "E5E5E5").cgColor) // ctx.setStrokeColor(UIColor(hexString: "E5E5E5").cgColor)
// ctx.setLineCap(.butt)
// ctx.addArc(center: center, radius: radius - 30, startAngle: CGFloat.pi * 0.75, endAngle: CGFloat.pi * 0.25, clockwise: false)
// // phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0
// // lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个
// ctx.setLineDash(phase: 0, lengths: [3, 10])
// ctx.strokePath()
ctx.setLineWidth(1)
ctx.setStrokeColor(massColor.cgColor)
ctx.setLineCap(.butt) ctx.setLineCap(.butt)
ctx.addArc(center: center, radius: radius - 30, startAngle: CGFloat.pi * 0.75, endAngle: CGFloat.pi * 0.25, clockwise: false) ctx.addArc(center: center, radius: radius + 10, startAngle: CGFloat.pi * 0.88, endAngle: CGFloat.pi * 0.12, clockwise: false)
// phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0 // phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0
// lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个 // lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个
ctx.setLineDash(phase: 0, lengths: [3, 10]) ctx.setLineDash(phase: 0, lengths: [3, 0])
ctx.strokePath()
ctx.setLineWidth(20)
ctx.setStrokeColor(massColor.withAlphaComponent(0.5).cgColor)
ctx.setLineCap(.butt)
ctx.addArc(center: center, radius: radius + 21, startAngle: CGFloat.pi * 0.88, endAngle: outerEndAngle, clockwise: false)
// phase表示开始绘制之前跳过多少点进行绘制,默认一般设置为0
// lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个
ctx.setLineDash(phase: 0, lengths: [3, 0])
ctx.strokePath() ctx.strokePath()
} }
} }
//
// XMDotProgressView.h
// XMDotProgressView
//
// Created by xiaoming on 14/11/27.
// Copyright (c) 2014年 XiaoMing. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface XMDotProgressView : UIView
@property (nonatomic, strong) UIColor *dotSelectedColor;
@property (nonatomic, strong) UIColor *dotUnseletedColor;
@property (nonatomic, assign) CGFloat dotDiameter; //default is 10
@property (nonatomic, assign) CGFloat paddingLeft; //default is 10 第一个点与view左边距,注意从圆的最左边算起
@property (nonatomic, assign) CGFloat progressLineHeight; //default is 2;
@property (nonatomic, assign, readonly) NSInteger seletedCount; // default is 0
@property (nonatomic, strong, readonly) NSArray *dotItemArray; //里面是 YBSDotItem
/**
* 设置方法,必须在设置完属性之后调用,否则设置的属性无效,这个初始化方法没有dotView下面的描述label
*
* @param argTotalDotCount <#argTotalDotCount description#>
*/
- (void)setupWithTotalDotCount:(NSInteger)argTotalDotCount;
/**
* 初始化设置方法,注意array的item是YBSDotItem,这个初始化方法有描述label
*
* @param argArray <#argArray description#>
*/
- (void)setupWithDotItem:(NSArray *)argArray;
- (void)setSeletedCount:(NSInteger)seletedCount;
- (void)setSeletedCount:(NSInteger)seletedCount animated:(BOOL)animated;
@end
@interface XMDotItem : NSObject
@property (nonatomic, copy) NSString *dotDescription;
@property (nonatomic, assign) NSInteger dotStatus;
@end
//
// XMDotProgressView.m
// XMDotProgressView
//
// Created by xiaoming on 14/11/27.
// Copyright (c) 2014年 XiaoMing. All rights reserved.
//
#import "XMDotProgressView.h"
#define kDotViewBaseTag 1000
#define kLabelViewBaseTag 2000
#define kDotBackgroundViewBaseTag 3000
#define kProgressLineBackgroundView 4000
#define kProgressLineView 5000
#define kShadowColor [UIColor colorWithRed:223/255.0 green:223/255.0 blue:223/255.0 alpha:1.0]
#import "XMDotProgressView.h"
@interface XMDotProgressView()
//内部自己用的变量
@property (nonatomic, strong) UIView *progressLineBackgroundView;
@property (nonatomic, strong) UIView *progressLineView;
@property (nonatomic, assign) NSInteger totalDotCount;
@property (nonatomic, assign) CGFloat dotInterval;
@property (nonatomic, assign) NSInteger targetDotViewIndex;//将要选中的dotView的位置,默认是0,
@property (nonatomic, strong, readwrite) NSArray *dotItemArray;
@property (nonatomic, assign) BOOL isAnimating;
@property (nonatomic, assign, readwrite) NSInteger seletedCount; // default is 0
@property (nonatomic, strong) NSArray *dotArray;
@property (nonatomic, strong) NSArray *descriptionLabelArray;
@end
@implementation XMDotProgressView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = [UIColor whiteColor];
self.dotDiameter = 10;
self.paddingLeft = 10;
self.progressLineHeight = 2;
self.dotSelectedColor = [UIColor orangeColor];
self.dotUnseletedColor = [UIColor lightGrayColor];
self.targetDotViewIndex = 0;
}
return self;
}
#pragma mark -
#pragma mark - publicMethod
- (void)setupWithTotalDotCount:(NSInteger)argTotalDotCount {
[self createDotViewsWithTotalCount:argTotalDotCount andShouldShowDescriptionLabel:NO];
}
- (void)setupWithDotItem:(NSArray *)argArray {
self.dotItemArray = argArray;
[self createDotViewsWithTotalCount:argArray.count andShouldShowDescriptionLabel:YES];
}
- (void)setSeletedCount:(NSInteger)seletedCount {
[self setSeletedCount:seletedCount animated:NO];
}
- (void)setSeletedCount:(NSInteger)seletedCount animated:(BOOL)animated {
if (self.isAnimating) {
return;
}
_seletedCount = seletedCount;
if (seletedCount - 1 < self.targetDotViewIndex) {
[self resetDotViews];
}
if (seletedCount == 0) {
[self resetDotViews];
}
else {
[self setupSeletedDotViewWithIndex:seletedCount animated:animated];
}
}
#pragma mark -
#pragma mark - privateMethod
- (void)resetDotViews {
for (UIImageView *dotView in self.dotArray) {
dotView.backgroundColor = self.dotUnseletedColor;
}
for (UILabel *label in self.descriptionLabelArray) {
label.textColor = self.dotUnseletedColor;
}
CGRect progressLineViewFrame = self.progressLineView.frame;
progressLineViewFrame.size.width = 0;
self.progressLineView.frame = progressLineViewFrame;
self.targetDotViewIndex = 0;
}
- (UIImageView *)createDotViewWithDotDiameter:(CGFloat)argDiameter {
UIImageView *dotView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, argDiameter, argDiameter)];
dotView.layer.cornerRadius = argDiameter / 2;
dotView.layer.masksToBounds = YES;
dotView.backgroundColor = self.dotUnseletedColor;
return dotView;
}
- (UILabel *)createLabelWithFrame:(CGRect)argFrame {
UILabel *label = [[UILabel alloc] initWithFrame:argFrame];
label.backgroundColor = [UIColor clearColor];
label.textAlignment = NSTextAlignmentCenter;
label.font = [UIFont systemFontOfSize:12];
label.textColor = self.dotUnseletedColor;
return label;
}
- (void)createDotViewsWithTotalCount:(NSInteger)argTotalDotCount andShouldShowDescriptionLabel:(BOOL)argShowDescriptionLabel {
for (UIView *subView in self.subviews) {
if (subView.tag >= kDotViewBaseTag) {
[subView removeFromSuperview];//必须这么remove掉,否则重新调用这个方法的时候会在原位置重新add一遍。
}
}
self.targetDotViewIndex = 0;
if (argTotalDotCount > 0) {
self.dotInterval = (CGRectGetWidth(self.bounds) - (self.paddingLeft + self.dotDiameter / 2) * 2) / (argTotalDotCount - 1);
CGFloat currentCenterX = self.paddingLeft + self.dotDiameter / 2;
CGFloat currentBackgroundCenterX = currentCenterX;
NSMutableArray *dotBackgroundArray = [NSMutableArray arrayWithCapacity:argTotalDotCount];
for (int i = 0; i < argTotalDotCount; i++) {
UIImageView *dotView = [self createDotViewWithDotDiameter:self.dotDiameter];
dotView.backgroundColor = kShadowColor;
dotView.center = CGPointMake(currentBackgroundCenterX, CGRectGetHeight(self.bounds) / 2);
currentBackgroundCenterX += self.dotInterval;
dotView.tag = kDotBackgroundViewBaseTag + i;
[self addSubview:dotView];
[dotBackgroundArray addObject:dotView];
}
UIView *progressLineBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(currentCenterX, 0, CGRectGetWidth(self.bounds) - currentCenterX * 2, self.progressLineHeight + 4)];
progressLineBackgroundView.center = CGPointMake(progressLineBackgroundView.center.x, CGRectGetHeight(self.bounds) / 2);
progressLineBackgroundView.backgroundColor = self.dotUnseletedColor;
progressLineBackgroundView.layer.borderWidth = 2;
progressLineBackgroundView.layer.borderColor = [kShadowColor CGColor];
progressLineBackgroundView.tag = kProgressLineBackgroundView;
[self addSubview:progressLineBackgroundView];
self.progressLineBackgroundView = progressLineBackgroundView;
NSMutableArray *dotArray = [NSMutableArray arrayWithCapacity:argTotalDotCount];
NSMutableArray *labelArray = [NSMutableArray arrayWithCapacity:argTotalDotCount];
for (int i = 0; i < argTotalDotCount; i++) {
UIImageView *dotView = [self createDotViewWithDotDiameter:self.dotDiameter - 4];
dotView.center = CGPointMake(currentCenterX, CGRectGetHeight(self.bounds) / 2);
currentCenterX += self.dotInterval;
dotView.tag = kDotViewBaseTag + i;
[self addSubview:dotView];
[dotArray addObject:dotView];
if (argShowDescriptionLabel) {
XMDotItem *item = self.dotItemArray[i];
UILabel *descriptionLabel = [self createLabelWithFrame:CGRectMake(0, CGRectGetMaxY(dotView.frame) + 6, 60, 14)];
descriptionLabel.center = CGPointMake(CGRectGetMidX(dotView.frame), descriptionLabel.center.y);
descriptionLabel.tag = kLabelViewBaseTag + i;
descriptionLabel.text = item.dotDescription;
[self addSubview:descriptionLabel];
[labelArray addObject:descriptionLabel];
}
}
self.dotArray = dotArray;
if (argShowDescriptionLabel) {
self.descriptionLabelArray = labelArray;
}
else {
self.descriptionLabelArray = nil;
}
UIView *progressLineView = [[UIView alloc] initWithFrame:CGRectMake(CGRectGetMinX(self.progressLineBackgroundView.frame),
CGRectGetHeight(self.bounds) / 2 - self.progressLineHeight / 2,
0,
self.progressLineHeight)];
progressLineView.backgroundColor = self.dotSelectedColor;
[self addSubview:progressLineView];
self.progressLineView = progressLineView;
}
else {
return;
}
if (argTotalDotCount == 1) {
UIView *dotView = [self viewWithTag:kDotViewBaseTag];
dotView.center = CGPointMake(CGRectGetWidth(self.bounds) / 2, CGRectGetHeight(self.bounds) / 2);
UIView *dotBackgroundView = [self viewWithTag:kDotBackgroundViewBaseTag];
dotBackgroundView.center = CGPointMake(CGRectGetWidth(self.bounds) / 2, CGRectGetHeight(self.bounds) / 2);
UILabel *label = (UILabel *)[self viewWithTag:kLabelViewBaseTag];
label.center = CGPointMake(CGRectGetWidth(self.bounds) / 2, label.center.y);
self.progressLineBackgroundView.hidden = YES;
self.progressLineView.hidden = YES;
}
}
- (CAKeyframeAnimation *)setupKeyframeAnimation {
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];
animation.values = @[@(0.1),@(1.0),@(1.6), @(1.0)];
animation.keyTimes = @[@(0.0),@(0.3),@(0.5),@(1.0)];
animation.calculationMode = kCAAnimationLinear;
return animation;
}
- (void)setupSeletedDotViewWithIndex:(NSInteger)argIndex animated:(BOOL)animated {
if (self.targetDotViewIndex >= argIndex) {
self.targetDotViewIndex = argIndex;
return;
}
if (animated) {
self.isAnimating = YES;
UIView *dotView = [self viewWithTag:kDotViewBaseTag + self.targetDotViewIndex];
UILabel *label = (UILabel *)[self viewWithTag:kLabelViewBaseTag + self.targetDotViewIndex];
CGFloat lineWidth = dotView.center.x - (self.paddingLeft + self.dotDiameter / 2);
CGRect progressLineViewFrame = self.progressLineView.frame;
progressLineViewFrame.size.width = lineWidth;
CGFloat animationDuration = 0;
if (argIndex != 0) {
animationDuration = 0.75;
}
[UIView animateWithDuration:animationDuration animations:^{
self.progressLineView.frame = progressLineViewFrame;
} completion:^(BOOL finished) {
if (finished) {
[dotView.layer addAnimation:[self setupKeyframeAnimation] forKey:@"showDotView"];
dotView.backgroundColor = self.dotSelectedColor;
[label.layer addAnimation:[self setupKeyframeAnimation] forKey:@"showLabel"];
label.textColor = self.dotSelectedColor;
self.targetDotViewIndex++;
[self setupSeletedDotViewWithIndex:argIndex animated:animated];
self.isAnimating = NO;
}
}];
}
else {
UIView *LastDotView = [self viewWithTag:kDotViewBaseTag + argIndex - 1];
CGFloat lineWidth = LastDotView.center.x - (self.paddingLeft + self.dotDiameter / 2);
CGRect progressLineViewFrame = self.progressLineView.frame;
progressLineViewFrame.size.width = lineWidth;
self.progressLineView.frame = progressLineViewFrame;
for (int i = 0; i < argIndex; i++) {
UIView *dotView = self.dotArray[i];
dotView.backgroundColor = self.dotSelectedColor;
UILabel *label = self.descriptionLabelArray[i];
label.textColor = self.dotSelectedColor;
}
self.targetDotViewIndex = argIndex;
}
}
@end
@implementation XMDotItem
@end
...@@ -65,7 +65,12 @@ ...@@ -65,7 +65,12 @@
-(void)meausurNet -(void)meausurNet
{ {
NSArray *urlArray = @[@"http://speedtest1.tj.chinamobile.com:8080/speedtest/random4000x4000.jpg", @"http://speedtest1.tj.chinamobile.com:8080/speedtest/random4000x4000.jpg", @"http://speedtest1.he.chinamobile.com:8080/speedtest/random4000x4000.jpg", @"http://speedtest.bmcc.com.cn:8080/speedtest/random4000x4000.jpg", @"http://bj3.unicomtest.com:8080/speedtest/random4000x4000.jpg"]; NSArray *urlArray = @[@"http://myspeed.giantcomm.net:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.rd.ks.cox.net:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.chisholmbb.com:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.satel.usch.com:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.wilsontelephone.com:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.ideatek.com:8080/speedtest/random4000x4000.jpg"];
int value = arc4random() % urlArray.count; int value = arc4random() % urlArray.count;
...@@ -131,7 +136,12 @@ ...@@ -131,7 +136,12 @@
NSLog(@"connectionDidFinishLoading"); NSLog(@"connectionDidFinishLoading");
// [self finishMeasure]; // [self finishMeasure];
NSArray *urlArray = @[@"http://speedtest1.tj.chinamobile.com:8080/speedtest/random4000x4000.jpg", @"http://speedtest1.tj.chinamobile.com:8080/speedtest/random4000x4000.jpg", @"http://speedtest1.he.chinamobile.com:8080/speedtest/random4000x4000.jpg", @"http://speedtest.bmcc.com.cn:8080/speedtest/random4000x4000.jpg", @"http://bj3.unicomtest.com:8080/speedtest/random4000x4000.jpg"]; NSArray *urlArray = @[@"http://myspeed.giantcomm.net:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.rd.ks.cox.net:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.chisholmbb.com:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.satel.usch.com:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.wilsontelephone.com:8080/speedtest/random4000x4000.jpg",
@"http://speedtest.ideatek.com:8080/speedtest/random4000x4000.jpg"];
int value = arc4random() % urlArray.count; int value = arc4random() % urlArray.count;
......
...@@ -30,6 +30,21 @@ ...@@ -30,6 +30,21 @@
return self; return self;
} }
-(void)drawRect:(CGRect)rect{
NSInteger count = 7;
NSInteger currentIndex = self.value/((self.maximumValue-1)/(count-2));
// 画圆
for (NSInteger i = 0; i < count; i ++) {
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(i * ((self.bounds.size.width-self.bounds.size.height)/(count-2))+2.5, 3, self.bounds.size.height-5, self.bounds.size.height-5) cornerRadius:((self.bounds.size.height-5)/2)];
[self.maximumTrackTintColor set];
if (currentIndex >= i) {
[self.thumbTintColor set];
}
[path fill];
}
}
#pragma mark - Overwrite functions #pragma mark - Overwrite functions
- (CGRect)trackRectForBounds:(CGRect)bounds { - (CGRect)trackRectForBounds:(CGRect)bounds {
...@@ -42,12 +57,14 @@ ...@@ -42,12 +57,14 @@
[super setValue:value animated:animated]; [super setValue:value animated:animated];
[self sliderValueChanged:self]; [self sliderValueChanged:self];
[self setNeedsDisplay];
} }
- (void)setValue:(float)value { - (void)setValue:(float)value {
[super setValue:value]; [super setValue:value];
[self sliderValueChanged:self]; [self sliderValueChanged:self];
[self setNeedsDisplay];
} }
#pragma mark - Setter functions #pragma mark - Setter functions
......
...@@ -44,8 +44,6 @@ ...@@ -44,8 +44,6 @@
#define kAdClkTracking @"ad_clk_tracking" #define kAdClkTracking @"ad_clk_tracking"
#define kAdImpTracking @"ad_imp_tracking" #define kAdImpTracking @"ad_imp_tracking"
#define ServerAds @"https://bs.zhangxinhulian.com/v3/ads"
#define userAgreement @"https://newspool.huolea.com/sspapiNovel/su/custom/clearapp/user.html" #define userAgreement @"https://newspool.huolea.com/sspapiNovel/su/custom/clearapp/user.html"
#define privacyPolicy @"https://newspool.huolea.com/sspapiNovel/su/custom/clearapp/privacy.html" #define privacyPolicy @"https://newspool.huolea.com/sspapiNovel/su/custom/clearapp/privacy.html"
#define feedbackUrl @"https://cdn-apph5.zhangxinzhixun.com/favorite/CommonProblem?token=%@&uid=%@" #define feedbackUrl @"https://cdn-apph5.zhangxinzhixun.com/favorite/CommonProblem?token=%@&uid=%@"
...@@ -77,12 +75,16 @@ ...@@ -77,12 +75,16 @@
// //
//#define ServerReport @"http://reporttest.zhangxinhulian.com" //#define ServerReport @"http://reporttest.zhangxinhulian.com"
//#define ServerHost @"https://feedapitest.zhangxinhulian.com" // 服务端接口地址 //#define ServerHost @"https://feedapitest.zhangxinhulian.com" // 服务端接口地址
//#define ServerAds @"https://bs.zhangxinhulian.com/v3/ads"
// //
//#define NSLog(format, ...) printf("\n[%s] %s [%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]); //#define NSLog(format, ...) printf("\n[%s] %s [%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);
//#else //#else
#define ServerReport @"http://report.zhangxinhulian.com" #define ServerReport @"http://report.guazinovel.com"
#define ServerHost @"https://feedapi.zhangxinhulian.com" #define ServerHost @"http://feedapi.guazinovel.com"
#define ServerAds @"https://bs.guazinovel.com/v3/ads"
//#define NSLog(format, ...) nil //#define NSLog(format, ...) nil
//#endif //#endif
......
...@@ -171,7 +171,7 @@ ...@@ -171,7 +171,7 @@
"Pause" = "暂停"; "Pause" = "暂停";
"PhoneCleaning" = "手机清灰"; "PhoneCleaning" = "手机清灰";
"DecibelDetection" = "分贝检测"; "DecibelDetection" = "声波助手";
"InternetSpeedTest" = "网络测速"; "InternetSpeedTest" = "网络测速";
"PowerSavingTips" = "来自 Super Cleaner 9个省电小妙招"; "PowerSavingTips" = "来自 Super Cleaner 9个省电小妙招";
"ExtendBatteryLife" = "教您延长iPhone电池寿命"; "ExtendBatteryLife" = "教您延长iPhone电池寿命";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment