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

no message

parent 4e998a20
......@@ -26,6 +26,9 @@
64EEB1FF24B4857900636C0F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64EEB1FE24B4857900636C0F /* SystemConfiguration.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 */; };
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 */; };
A94C0CC824DA69B3007F577D /* SCConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94C0BFE24DA69B1007F577D /* SCConstants.swift */; };
A94C0CF324DA69B3007F577D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A94C0C4324DA69B2007F577D /* Assets.xcassets */; };
......@@ -176,6 +179,7 @@
A94C0F6B24DBF952007F577D /* AASeriesElement.m in Sources */ = {isa = PBXBuildFile; fileRef = A94C0F4424DBF952007F577D /* AASeriesElement.m */; };
A94C0F6F24DC0606007F577D /* SCHomeHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = A94C0F6D24DC0606007F577D /* SCHomeHeaderView.m */; };
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 */; };
A9827B1D24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9827B1B24E5156E004E6FE4 /* ICCustomLaunchScreenView.xib */; };
A9827B2024E51579004E6FE4 /* ICAdsTrackModel.m in Sources */ = {isa = PBXBuildFile; fileRef = A9827B1F24E51579004E6FE4 /* ICAdsTrackModel.m */; };
......@@ -209,6 +213,11 @@
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; };
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>"; };
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>"; };
......@@ -476,6 +485,8 @@
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>"; };
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>"; };
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>"; };
......@@ -546,10 +557,31 @@
name = Products;
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 */ = {
isa = PBXGroup;
children = (
A94C0C6F24DA69B2007F577D /* superCleaner.entitlements */,
A94B7CB024EA81C7002C75CA /* Guide */,
A94B7CAC24EA81C7002C75CA /* LaunchScreen */,
A94C0D1224DA7043007F577D /* Base */,
A94C0DF924DA7044007F577D /* Extension */,
A94C0D7424DA7043007F577D /* Home */,
......@@ -685,6 +717,7 @@
A94C0D4024DA7043007F577D /* Other */ = {
isa = PBXGroup;
children = (
A94D934D24F6386900A886C0 /* XMDotProgressView */,
A94C0E8F24DBF1B3007F577D /* AAChartKitLib */,
A94C0D4B24DA7043007F577D /* BatteryCareBluetooth.plist */,
A94C0D5624DA7043007F577D /* BatteryCareLocation.plist */,
......@@ -1067,6 +1100,15 @@
path = AAChartCreator;
sourceTree = "<group>";
};
A94D934D24F6386900A886C0 /* XMDotProgressView */ = {
isa = PBXGroup;
children = (
A94D934E24F6386900A886C0 /* XMDotProgressView.h */,
A94D934F24F6386900A886C0 /* XMDotProgressView.m */,
);
path = XMDotProgressView;
sourceTree = "<group>";
};
A9827B1824E514B5004E6FE4 /* SCAds */ = {
isa = PBXGroup;
children = (
......@@ -1177,6 +1219,7 @@
A94C0F7024DC0606007F577D /* SCHomeHeaderView.xib in Resources */,
A94C0E2624DA7044007F577D /* BatteryCareNotification.plist in Resources */,
A94C0F6724DBF952007F577D /* AAJSFiles.bundle in Resources */,
A94B7CB624EA81C8002C75CA /* LaunchScreenPlaceHolderView.xib in Resources */,
A94C0E2A24DA7044007F577D /* BatteryCareLowPowerMode.plist in Resources */,
A94C0E2424DA7044007F577D /* BatteryCareBluetooth.plist in Resources */,
A94C0CF524DA69B3007F577D /* LaunchScreen.storyboard in Resources */,
......@@ -1286,6 +1329,7 @@
A94C0E5B24DA7044007F577D /* MeasurNetTools.m in Sources */,
A94C0CF424DA69B3007F577D /* AppDelegate.m in Sources */,
A94C0E4B24DA7044007F577D /* WKPhotoInfoItem.m in Sources */,
A94B7CB724EA81C8002C75CA /* ZJGuideConfig.m in Sources */,
A94C0F5724DBF952007F577D /* AALang.m in Sources */,
A94C0E1D24DA7044007F577D /* ICUserManager.m in Sources */,
A9C32CF224E42BBA00F4C587 /* ICContactsIncompleteCell.m in Sources */,
......@@ -1371,6 +1415,7 @@
A94C0F4824DBF952007F577D /* AALabels.m in Sources */,
A94C0E6624DA7044007F577D /* Data.m in Sources */,
A94C0E5824DA7044007F577D /* ICPvwPhotoViewerCell.m in Sources */,
A94D935024F6386900A886C0 /* XMDotProgressView.m in Sources */,
A94C0E3E24DA7044007F577D /* ICBatteryCareListViewCell.m in Sources */,
A94C0F5324DBF952007F577D /* AACredits.m in Sources */,
A94C0E1824DA7044007F577D /* WKCompressImageTool.m in Sources */,
......@@ -1379,6 +1424,7 @@
A94C0E2124DA7044007F577D /* ICCalenderReminderController.m in Sources */,
A94C0E1624DA7044007F577D /* WKClearPhotoManager.m in Sources */,
A94C0F4F24DBF952007F577D /* AATooltip.m in Sources */,
A94B7CB524EA81C8002C75CA /* LaunchScreenPlaceHolderView.m in Sources */,
A94C0E6024DA7044007F577D /* QiSlider.m in Sources */,
A94C0E8124DA7044007F577D /* ImageSimilarity.swift in Sources */,
A94C0E4224DA7044007F577D /* ICPhotoLocationViewController.m in Sources */,
......@@ -1549,7 +1595,7 @@
CODE_SIGN_ENTITLEMENTS = superCleaner/superCleaner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 103;
CURRENT_PROJECT_VERSION = 107;
DEVELOPMENT_TEAM = 443AN53DBQ;
ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
......@@ -1584,7 +1630,7 @@
CODE_SIGN_ENTITLEMENTS = superCleaner/superCleaner.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 103;
CURRENT_PROJECT_VERSION = 107;
DEVELOPMENT_TEAM = 443AN53DBQ;
ENABLE_BITCODE = YES;
FRAMEWORK_SEARCH_PATHS = (
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "编组@2x.png",
"filename" : "选中@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "编组@3x.png",
"filename" : "选中@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "苹果6.7.8-引导页-3@2x.png",
"filename" : "苹果6.7.8-引导页-3副本@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "苹果6.7.8-引导页-3@3x.png",
"filename" : "苹果6.7.8-引导页-3副本@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"scale" : "1x"
},
{
"filename" : "super苹果引导11-3@2x.png",
"filename" : "super苹果引导11-3副本@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "super苹果引导11-3@3x.png",
"filename" : "super苹果引导11-3副本@3x.png",
"idiom" : "universal",
"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 @@
"scale" : "1x"
},
{
"filename" : "编组 3@2x.png",
"filename" : "表盘@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "编组 3@3x.png",
"filename" : "表盘@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
......
......@@ -5,12 +5,12 @@
"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",
"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",
"scale" : "3x"
}
......
<?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"/>
<dependencies>
<deployment identifier="iOS"/>
......@@ -22,15 +22,15 @@
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<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="centerX" secondItem="6Tk-OE-BBY" secondAttribute="centerX" id="qL0-ib-AtF"/>
<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="eOI-jj-n0w" secondAttribute="centerX" id="qL0-ib-AtF"/>
</constraints>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
<viewLayoutGuide key="safeArea" id="eOI-jj-n0w"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
<point key="canvasLocation" x="52.173913043478265" y="374.18478260869568"/>
</scene>
</scenes>
<resources>
......
......@@ -112,6 +112,7 @@
<outlet property="iconImV" destination="q6x-Wi-XlX" id="KPz-gt-Ipv"/>
<outlet property="left" destination="ueJ-Hi-iHu" id="xqa-7o-Iy5"/>
<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="top" destination="YJh-Qm-QMN" id="O8E-7m-csn"/>
</connections>
......@@ -1072,7 +1073,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<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>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wkd-0h-Tyo">
<rect key="frame" x="0.0" y="0.0" width="114.5" height="103"/>
......@@ -1174,7 +1175,7 @@
</connections>
</button>
<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>
<constraint firstAttribute="width" secondItem="SCy-G3-LUs" secondAttribute="height" id="Vbi-l0-Wvl"/>
</constraints>
......@@ -1182,12 +1183,12 @@
</subviews>
<color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
<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="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="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="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="UVC-kp-CP1" firstAttribute="bottom" secondItem="zI7-gV-TfT" secondAttribute="bottom" constant="43" id="u4Y-Yo-jPP"/>
</constraints>
......@@ -1560,59 +1561,30 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<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>
<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>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zcl-s1-Hjt">
<rect key="frame" x="30" y="30" width="150" height="150"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fjU-8z-Upy">
<rect key="frame" x="22" y="22" width="106" height="106"/>
<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 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="3" y="115" width="258" height="34"/>
</imageView>
<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="48" y="108" width="168" height="48"/>
</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>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstAttribute="width" constant="210" id="0Fe-W8-EZ9"/>
<constraint firstItem="zcl-s1-Hjt" firstAttribute="centerX" secondItem="pta-bF-CDR" secondAttribute="centerX" id="2bx-r2-DM4"/>
<constraint firstAttribute="width" constant="264" id="0Fe-W8-EZ9"/>
<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 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 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="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>
</view>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="RRH-c4-EBp">
......@@ -1707,7 +1679,7 @@
</constraints>
</stackView>
<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"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="rNr-sd-MgD"/>
......@@ -1724,13 +1696,13 @@
</connections>
</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">
<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"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</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">
<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"/>
<color key="textColor" red="0.59999999999999998" green="0.59999999999999998" blue="0.59999999999999998" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
......@@ -1758,11 +1730,10 @@
</view>
<connections>
<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="imageContentView" destination="fjU-8z-Upy" id="dwI-dE-B8N"/>
<outlet property="sliderContentView" destination="MoV-qT-r81" id="s0p-91-WVn"/>
<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="gK7-m8-YEr" id="a9o-xE-dpt"/>
<outletCollection property="topActionButtons" destination="9A7-eg-1yF" id="8GB-AO-OIv"/>
......@@ -1782,7 +1753,7 @@
<image name="clean_cell_2" width="90" height="90"/>
<image name="clean_cell_3" width="90" height="90"/>
<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="home_pause_btn_bg" width="26" height="26"/>
<image name="inAppPurchase_cancel" width="20" height="20"/>
......@@ -1793,13 +1764,14 @@
<image name="network_update" width="15" height="17"/>
<image name="pay_view_select_icon" width="13" height="8"/>
<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_selected" 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_pet_normal" 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_image" width="60" height="60"/>
<image name="tool_dust_clean_cycle_icon_1" width="260" height="264"/>
</resources>
</document>
......@@ -12,6 +12,8 @@ NS_ASSUME_NONNULL_BEGIN
@interface ICGuideViewController : ICBaseViewController
@property (nonatomic, copy) void(^clickCallBack)(BOOL);
@end
NS_ASSUME_NONNULL_END
......@@ -36,9 +36,14 @@
}
- (void)dismissGuideView {
ICHomeViewController *homeVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICHomeViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC];
[UIApplication sharedApplication].keyWindow.rootViewController = navc;
if (self.clickCallBack) {
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
......
......@@ -12,7 +12,10 @@
#import "ICIPAProductModel.h"
#import "Data.h"
@interface ICIAPViewController ()
@interface ICIAPViewController (){
NSTimer * timer;
int timerCount;
}
@property (weak, nonatomic) IBOutlet UIView *weakContentView;
@property (weak, nonatomic) IBOutlet UIView *yearContentView;
......@@ -39,6 +42,10 @@
- (void)viewDidLoad {
[super viewDidLoad];
[MobClick event:@"pay_page_view"];
[MobClick beginEvent:@"pay_page_stay"];
// Do any additional setup after loading the view.
self.weakContentView.layer.cornerRadius = KScaleWidth(8);
self.yearContentView.layer.cornerRadius = KScaleWidth(8);;
......@@ -64,34 +71,40 @@
self.function2Label.text = ICLocalized(@"SecurelyData");//@"安全隐藏敏感数据";
self.function3Label.text = ICLocalized(@"ForgetAdvert");//@"忘掉广告和限制";
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);
// CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
// animation.keyPath = @"transform.scale";
// animation.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
// animation.autoreverses = true;
// animation.repeatCount = MAXFLOAT;
// [self.yearContentView.layer addAnimation:animation forKey: @"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 = .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 {
......@@ -129,7 +142,7 @@
}
- (void)selectedWeakAction {
[MobClick event:@"pay_weekly"];
[MobClick event:@"pay_week_vip_click"];
if (self.products.count == 0){
return;
}
......@@ -139,11 +152,11 @@
break;
}
}
[self startPlanAction:_currentProduct];
[self startPlanAction:_currentProduct index:1];
}
- (void)selectedYearAction {
[MobClick event:@"pay_yearly"];
[MobClick event:@"pay_year_vip_click"];
if (self.products.count == 0){
return;
}
......@@ -153,7 +166,7 @@
break;
}
}
[self startPlanAction:_currentProduct];
[self startPlanAction:_currentProduct index:0];
}
- (void)viewWillAppear:(BOOL)animated {
......@@ -163,13 +176,13 @@
// dismiss
- (IBAction)dismissAction {
[MobClick event:@"close_trial_page"];
[MobClick event:@"pay_payment_close_click"];
[self dismissViewControllerAnimated:true completion:nil];
}
// 恢复购买
- (IBAction)restoreAction {
[MobClick event:@"resume_pay"];
[MobClick event:@"pay_restore_click"];
[ICPurchaseManager restorePurchasesWithSuccess:^{
[[ICUserManager shared] getUserInfo:^(ZTUserInfoModel * _Nonnull model) {
[self dismissViewControllerAnimated:true completion:nil];
......@@ -180,14 +193,21 @@
}
// 开始计划
- (IBAction)startPlanAction:(ICIPAProductModel *)model {
- (IBAction)startPlanAction:(ICIPAProductModel *)model index:(NSInteger)index{
[MobClick event:@"description_pay_button"];
[MobClick event:@"trial_use"];
NSString *payTypeStr = model.productId;
__weak typeof(self) weakSelf = self;
[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) {
[weakSelf dismissViewControllerAnimated:true completion:nil];
} failure:^{
......@@ -216,8 +236,4 @@
[self.navigationController pushViewController:webView animated:true];
}
- (void)dealloc{
NSLog(@"ICIAPViewController dealloc");
}
@end
......@@ -19,6 +19,8 @@
#import "ICAdsTrackModel.h"
#import "ICCustomLaunchScreenView.h"
#import "ZJGuideConfig.h"
#define kAPP_Version @"app_version"
@interface AppDelegate ()<BUSplashAdDelegate>
......@@ -50,21 +52,17 @@
self.window = [[UIWindow alloc] initWithFrame: UIScreen.mainScreen.bounds];
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"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:homeVC];
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].isMember) {
NSString *codeId = [[data Read] objectForKey:kAdCodeId];
......@@ -82,15 +80,47 @@
[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;
[[ZTNetworkTools shared] postWithLogCollection:logCollection parameters:dict success:^(id _Nullable __autoreleasing * _Nullable response) {
......
......@@ -29,13 +29,13 @@
[contentView addSubview:iconView];
[iconView mas_makeConstraints:^(MASConstraintMaker *make) {
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];
tipLabel.text = title;
tipLabel.textColor = kColorFromRGB(0xCED3DB);
tipLabel.font = [UIFont systemFontOfSize:14];
tipLabel.textColor = kColorFromRGB(0x333333);
tipLabel.font = [UIFont systemFontOfSize:16];
tipLabel.textAlignment = NSTextAlignmentCenter;
[contentView addSubview:tipLabel];
[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 @@
@property (strong, nonatomic) SCHomeHeaderView * headerView;
@property (strong, nonatomic) NSArray * dataSource;
IBInspectable
@end
@implementation ICHomeViewController
......@@ -39,12 +41,13 @@
- (void)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_3", @"title":@"手机清灰", @"details":@"除尘·修复听筒音量"},
@{@"image":@"home_cell_4", @"title":@"网速检测", @"details":@"一键测试你的网络速度"},
@{@"image":@"home_cell_5", @"title":@"分贝检测", @"details":@"专业的噪音检测仪"},
@{@"image":@"home_cell_6", @"title":@"电池寿命", @"details":@"延长iPhone电池寿命"},
@{@"image":@"home_cell_3", @"title":@"赫兹声波", @"details":@""},
@{@"image":@"home_cell_5", @"title":@"声波助手", @"details":@""},
@{@"image":@"home_cell_4", @"title":@"网络测速", @"details":@""},
@{@"image":@"home_cell_6", @"title":@"电池小贴士", @"details":@""},
/*@{@"image":@"home_cell_7", @"title":@"相册统计", @"details":@"种类占比"}*/];
[self setupUI];
......@@ -52,7 +55,7 @@
[[ICUserManager shared] loginAndGetUserInfo:^(ZTUserInfoModel * _Nonnull model) {
[[ICUserManager shared] getServiceInfo];
if (!model.isMember) {
if (![ICUserManager shared].isMember) {
Data * data = [[Data alloc] init];
NSDictionary * dic = [[data Read] objectForKey:@"open1close0"];
......@@ -150,7 +153,7 @@
NSLog(@"%.1f/%.0f", 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];
}
......@@ -230,6 +233,14 @@
cell.titleLab.text = [dic objectForKey:@"title"];
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) {
cell.right.hidden = YES;
}else{
......@@ -319,6 +330,7 @@
break;
case 1:
{
[MobClick event:@"home_overdue_calendar"];
ICCalendarManageController *calendarVC = [[ICCalendarManageController alloc] init];
[self.navigationController pushViewController:calendarVC animated:true];
}
......@@ -329,30 +341,33 @@
ICCleanDustViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICCleanDustViewController"];
[self.navigationController pushViewController:vc animated:true];
}else {
[MobClick event:@"phone_deash_clean"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
}
}
break;
case 3:
case 4:
{
if ([ICUserManager shared].isMember) {
ICNetworkSpeedViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICNetworkSpeedViewController"];
[self.navigationController pushViewController:vc animated:true];
}else {
[MobClick event:@"network_speed_detection"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
}
}
break;
case 4:
case 3:
{
if ([ICUserManager shared].isMember) {
ICDbTestViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICDbTestViewController"];
[self.navigationController pushViewController:vc animated:true];
}else {
[MobClick event:@"db_detection"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......@@ -365,6 +380,7 @@
ICBatteryCareViewController *vc = [[ICBatteryCareViewController alloc] init];
[self.navigationController pushViewController:vc animated:true];
}else {
[MobClick event:@"battery_life"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......
......@@ -38,7 +38,12 @@
- (void)viewDidLoad {
[super viewDidLoad];
if (self.photoType == LocationPhoto){
}else{
self.navigationItem.title = @"屏幕截图";
}
self.itemSource = [NSMutableArray array];
......@@ -60,7 +65,7 @@
UIButton *selectBtn = [[UIButton alloc] init];
[selectBtn setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[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 addTarget:self action:@selector(selectAllOrNotAction:) forControlEvents:UIControlEventTouchUpInside];
self.selectAllBtn = selectBtn;
......@@ -70,6 +75,9 @@
UIButton *deleteBtn = [[UIButton alloc] init];
[deleteBtn setBackgroundImage:[UIImage imageNamed:@"global_green_btn_bg"] forState:UIControlStateNormal];
[deleteBtn setTitle: ICLocalized(@"DeleteScreenshots") forState:UIControlStateNormal]; //@"删除截图"
if (self.photoType == LocationPhoto){
[deleteBtn setTitle: @"删除照片" forState:UIControlStateNormal];
}
[self.view addSubview:deleteBtn];
[self.view bringSubviewToFront:deleteBtn];
......@@ -222,7 +230,10 @@
- (UICollectionView *)collectionView {
if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
CGFloat itemCount = 4;
CGFloat itemCount = 3;
if (self.photoType == LocationPhoto){
itemCount = 2;
}
CGFloat distance = 8;
CGFloat width = self.view.frame.size.width;
CGFloat itemWH = (width - distance * (itemCount + 1)) / itemCount - 1;
......
......@@ -85,6 +85,7 @@
for (NSArray *models in dict.allValues) {
[items addObjectsFromArray:models];
}
vc.title = dict.allKeys.firstObject;
vc.currentlocationGroudIndex = indexPath.row;
vc.similarArr = items;
vc.photoType = LocationPhoto;
......
......@@ -72,6 +72,7 @@
NSLog(@"%@ -- %@", startDate, endDate);
// weakSelf.photoMgr.startDate = startDate;
// weakSelf.photoMgr.endDate = endDate;
[MobClick event:@"photo_select_time_period"];
NSMutableArray *temp = [NSMutableArray array];
for (ICBasePhotoModel *model in weakSelf.photoMgr.snapshotArray) {
......@@ -124,7 +125,12 @@
// [MBProgressHUD showLoading:@"正在查询,请稍后..." toView:self.view];
[self.photoMgr loadLocationPhotoWithProcess:^(NSInteger current, NSInteger total) {
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.countLabel.text = [NSString stringWithFormat:@"%lu", (unsigned long)weakSelf.photoMgr.locationArray.count];
} completionHandler:^(BOOL success, NSError *error) {
// [MBProgressHUD hideHUDForView:self.view];
......@@ -261,6 +267,35 @@
}
} 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"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......
......@@ -127,7 +127,7 @@
[self screenshotDetailAction];
break;
case 2:
[MobClick event:@"clean_now_similar_video"];
break;
case 3:
[self livePhotoDetailAction];
......@@ -248,7 +248,7 @@
self.screenshotContentView.hidden = false;
self.livePhotoContentView.hidden = false;
self.similarPhotoContentView.hidden = false;
self.similarVideoContentView.hidden = true;
self.similarVideoContentView.hidden = false;
self.pauseButton.hidden = true;
self.clearAllButton.hidden = false;
self.stepTipLabel.hidden = true;
......@@ -260,6 +260,7 @@
[MBProgressHUD showError: ICLocalized(@"NoPhotosCleanup")];//@"无照片可清理"];
}
} else {
[MobClick event:@"clean_now_delete_all"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......@@ -297,6 +298,7 @@
vc.navigationItem.title = ICLocalized(@"ScreenCapture"); //@"屏幕截图";
[self.navigationController pushViewController:vc animated:YES];
} else {
[MobClick event:@"clean_now_screenshot"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......@@ -312,6 +314,7 @@
vc.photoType = SimilayLivePhoto;
[self.navigationController pushViewController:vc animated:YES];
} else {
[MobClick event:@"clean_now_similar_live_photo"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......@@ -327,6 +330,7 @@
vc.photoType = SimilayNormalPhoto;
[self.navigationController pushViewController:vc animated:YES];
} else {
[MobClick event:@"clean_now_similar_photo"];
ICIAPViewController *iapVC = [[UIStoryboard storyboardWithName:@"Main" bundle: nil] instantiateViewControllerWithIdentifier:@"ICIAPViewController"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......
......@@ -142,7 +142,7 @@
UIButton *selectBtn = [[UIButton alloc] init];
[selectBtn setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[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 addTarget:self action:@selector(selectAllOrNotAction:) forControlEvents:UIControlEventTouchUpInside];
selectBtn.selected = true;
......@@ -191,7 +191,7 @@
[MobClick event:@"similar_live_photo_delete_click"];
break;
case SimilayVideoPhoto:
[MobClick event:@"similar_photo_delete_all_click"];
[MobClick event:@"similar_video_delete_all_click"];
default:
break;
}
......
......@@ -21,6 +21,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, weak) IBOutlet UIView * left;
@property (nonatomic, weak) IBOutlet UIView * right;
@property (nonatomic, weak) IBOutlet NSLayoutConstraint * titleBottomConstraint;
@end
NS_ASSUME_NONNULL_END
......@@ -20,7 +20,7 @@
<constraint firstAttribute="width" secondItem="Zv4-WU-omb" secondAttribute="height" id="8bM-lL-T2A"/>
</constraints>
</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"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<nil key="textColor"/>
......
......@@ -44,12 +44,12 @@
cover.frame = self.contentView.bounds;
cover.backgroundColor = [[UIColor colorWithHex:0x478DFE] colorWithAlphaComponent:0.3];
cover.hidden = true;
[self addSubview:cover];
self.coverView = cover;
// [self addSubview:cover];
// self.coverView = cover;
CGFloat selectWH = 20; //frame.size.width * 0.3;
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.selectBtn = selectBtn;
[selectBtn setImage:[UIImage imageNamed:@"contact_choose"] forState:UIControlStateNormal];
......
......@@ -30,7 +30,7 @@
<key>NSCameraUsageDescription</key>
<string>Super Cleaner 需要访问您的相机权限才能分析相似图片和视频</string>
<key>NSMicrophoneUsageDescription</key>
<string>Super Cleaner 需要访问您的麦克风才能进行分贝检测</string>
<string>Super Cleaner 需要访问您的麦克风才能进行检测</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Super Cleaner 需要访问您的相册权限才能分析相似图片和视频</string>
<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;
- (BOOL)isMember {
return true;
NSString *dateString = [[NSUserDefaults standardUserDefaults] valueForKeyPath:@"expiryDate"];
// if (dateString.length <= 0) {
//#ifdef DEBUG
// return YES;
//#else
// return self.model.isMember;
//#endif
// }
if (!dateString) {
Data * data = [[Data alloc] init];
dateString = [NSString stringWithFormat:@"%@ 23:59", [[data Read] objectForKey:@"memberEndTime"]];
......@@ -76,13 +72,20 @@ static ICUserManager * manager;
NSDate *expiryDate = [formatter dateFromString:dateString];
NSLog(@"expiryDate == %@", expiryDate);
NSLog(@"currentDate %@", [NSDate date]);
if (self.model) {
return self.model.isMember;
}else{
if ([expiryDate timeIntervalSinceDate:[NSDate date]] > 0) {
return true;
}else{
return false;
}
}
// else if ([expiryDate timeIntervalSinceDate:[NSDate date]] <= 0) {
// return false;
// }
return self.model.isMember;
// return self.model.isMember;
}
- (NSString *)token{
......
......@@ -204,6 +204,7 @@ static ZTNetworkTools* _tools = nil;
NSString *bb = [key stringByAppendingFormat:@"=%@", ddd[key]];
aaa = [aaa stringByAppendingFormat:@"&%@", bb];
}
NSLog(@"%@", [urlString stringByAppendingFormat:@"?%@", aaa]);
NSMutableURLRequest *req = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString: [urlString stringByAppendingFormat:@"?%@", aaa] parameters:nil error:nil];
req.timeoutInterval= 10;
......@@ -455,10 +456,10 @@ static ZTNetworkTools* _tools = nil;
@"iPad4,4" : @"iPad Mini", // (2nd Generation iPad Mini - Wifi)
@"iPad4,5" : @"iPad Mini", // (2nd Generation iPad Mini - Cellular)
@"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,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,4" : @"iPad Pro (9.7\")" // iPad Pro 9.7 inches - (models A1674 and A1675)
@"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,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)
};
}
......
......@@ -143,6 +143,11 @@
[self.navigationController pushViewController:calendarVC animated:true];
}
} 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"];
ICNavigationController *navc = [[ICNavigationController alloc] initWithRootViewController:iapVC];
[self presentViewController:navc animated:true completion:nil];
......
......@@ -47,7 +47,7 @@
self.selectAllButton = [[UIButton alloc] init];
[self.selectAllButton setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[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 sizeToFit];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: self.selectAllButton];
......
......@@ -48,7 +48,7 @@
self.selectAllButton = [[UIButton alloc] init];
[self.selectAllButton setTitle: ICLocalized(@"ChooseAll") forState:UIControlStateNormal];
[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 sizeToFit];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: self.selectAllButton];
......
......@@ -35,6 +35,7 @@ typedef enum : NSUInteger {
@property (weak, nonatomic) IBOutlet UIView *sliderContentView;
@property (weak, nonatomic) IBOutlet UIImageView *centerImageView;
@property (weak, nonatomic) IBOutlet UIImageView *centerBgImageView;
@property (nonatomic, assign) ICPlayVoiceType voiceType;
......@@ -156,19 +157,22 @@ typedef enum : NSUInteger {
switch (sender.tag) {
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.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"];
break;
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.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon"];
self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"];
break;
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.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon"];
self.bgCycleImageView.image = [UIImage imageNamed:@"tool_dust_clean_cycle_icon_1"];
break;
default:
break;
......
......@@ -139,11 +139,11 @@
networkSpeed = [[QBTools formattedFileSize:speed] floatValue];
unit = @"MB";
}
networkSpeed = [speedStr floatValue];
// networkSpeed = [speedStr floatValue];
[weakSelf refreshDownloadDashboard: networkSpeed];
self.board.speedUnit = unit;
self.board.mbpsValue = networkSpeed;
self.board.mbpsValue = [speedStr floatValue];;
} finishMeasureBlock:^(float speed) {
NSString* speedStr = [NSString stringWithFormat:@"%@/S", [QBTools formattedFileSize:speed]];
......
......@@ -90,35 +90,56 @@ class ICDbDashboardLayer: CALayer {
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 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.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
ctx.setLineDash(phase: 0, lengths: [3, 10])
ctx.strokePath()
ctx.setLineWidth(24)
ctx.setLineWidth(18)
ctx.setStrokeColor(massColor.cgColor)
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
// lengths通常都包含两个数字,第一个是绘制的宽度,第二个表示跳过的宽度,也可以设置多个
ctx.setLineDash(phase: 0, lengths: [3, 10])
ctx.strokePath()
ctx.setLineWidth(5)
ctx.setStrokeColor(UIColor(hexString: "E5E5E5").cgColor)
// ctx.setLineWidth(5)
// 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.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
// 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()
}
}
//
// 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 @@
-(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;
......@@ -131,7 +136,12 @@
NSLog(@"connectionDidFinishLoading");
// [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;
......
......@@ -30,6 +30,21 @@
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
- (CGRect)trackRectForBounds:(CGRect)bounds {
......@@ -42,12 +57,14 @@
[super setValue:value animated:animated];
[self sliderValueChanged:self];
[self setNeedsDisplay];
}
- (void)setValue:(float)value {
[super setValue:value];
[self sliderValueChanged:self];
[self setNeedsDisplay];
}
#pragma mark - Setter functions
......
......@@ -44,8 +44,6 @@
#define kAdClkTracking @"ad_clk_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 privacyPolicy @"https://newspool.huolea.com/sspapiNovel/su/custom/clearapp/privacy.html"
#define feedbackUrl @"https://cdn-apph5.zhangxinzhixun.com/favorite/CommonProblem?token=%@&uid=%@"
......@@ -77,12 +75,16 @@
//
//#define ServerReport @"http://reporttest.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]);
//#else
#define ServerReport @"http://report.zhangxinhulian.com"
#define ServerHost @"https://feedapi.zhangxinhulian.com"
#define ServerReport @"http://report.guazinovel.com"
#define ServerHost @"http://feedapi.guazinovel.com"
#define ServerAds @"https://bs.guazinovel.com/v3/ads"
//#define NSLog(format, ...) nil
//#endif
......
......@@ -171,7 +171,7 @@
"Pause" = "暂停";
"PhoneCleaning" = "手机清灰";
"DecibelDetection" = "分贝检测";
"DecibelDetection" = "声波助手";
"InternetSpeedTest" = "网络测速";
"PowerSavingTips" = "来自 Super Cleaner 9个省电小妙招";
"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