添加MenuVC、feedback页面
@ -25,6 +25,10 @@
|
|||||||
0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */; };
|
0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */; };
|
||||||
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */; };
|
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */; };
|
||||||
0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */; };
|
0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */; };
|
||||||
|
009DFB032BC63AF0007B56E8 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009DFB022BC63AF0007B56E8 /* CoreImage.framework */; };
|
||||||
|
009DFB0E2BC8CFA2007B56E8 /* FeedbackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009DFB0D2BC8CFA2007B56E8 /* FeedbackView.swift */; };
|
||||||
|
009DFB112BC8E2E9007B56E8 /* MenuVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009DFB102BC8E2E9007B56E8 /* MenuVC.swift */; };
|
||||||
|
009DFB132BC8EA90007B56E8 /* MenuVCCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009DFB122BC8EA90007B56E8 /* MenuVCCell.swift */; };
|
||||||
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; };
|
00B946252B67B7DE00DA668F /* CCSpatialPlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */; };
|
||||||
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
|
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
|
||||||
00C665792BAA94EA00C309C3 /* CopyCrashHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */; };
|
00C665792BAA94EA00C309C3 /* CopyCrashHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C665772BAA941E00C309C3 /* CopyCrashHandler.swift */; };
|
||||||
@ -126,6 +130,10 @@
|
|||||||
009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalSceneDelegate.swift; sourceTree = "<group>"; };
|
009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalSceneDelegate.swift; sourceTree = "<group>"; };
|
||||||
0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHExternalViewController.swift; sourceTree = "<group>"; };
|
0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHExternalViewController.swift; sourceTree = "<group>"; };
|
||||||
009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialVideoDisplayForVideoTask.swift; sourceTree = "<group>"; };
|
009662592BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialVideoDisplayForVideoTask.swift; sourceTree = "<group>"; };
|
||||||
|
009DFB022BC63AF0007B56E8 /* CoreImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreImage.framework; path = System/Library/Frameworks/CoreImage.framework; sourceTree = SDKROOT; };
|
||||||
|
009DFB0D2BC8CFA2007B56E8 /* FeedbackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedbackView.swift; sourceTree = "<group>"; };
|
||||||
|
009DFB102BC8E2E9007B56E8 /* MenuVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuVC.swift; sourceTree = "<group>"; };
|
||||||
|
009DFB122BC8EA90007B56E8 /* MenuVCCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuVCCell.swift; sourceTree = "<group>"; };
|
||||||
00B946222B67B26D00DA668F /* ddd_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = ddd_video.mp4; sourceTree = "<group>"; };
|
00B946222B67B26D00DA668F /* ddd_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = ddd_video.mp4; sourceTree = "<group>"; };
|
||||||
00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialPlayView.swift; sourceTree = "<group>"; };
|
00B946242B67B7DE00DA668F /* CCSpatialPlayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpatialPlayView.swift; sourceTree = "<group>"; };
|
||||||
00C665722BAA81F900C309C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
00C665722BAA81F900C309C3 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||||
@ -221,6 +229,7 @@
|
|||||||
files = (
|
files = (
|
||||||
AF478B032B577D51005C35A5 /* AVFoundation.framework in Frameworks */,
|
AF478B032B577D51005C35A5 /* AVFoundation.framework in Frameworks */,
|
||||||
00EB2D052BA2D59000924D84 /* MessageUI.framework in Frameworks */,
|
00EB2D052BA2D59000924D84 /* MessageUI.framework in Frameworks */,
|
||||||
|
009DFB032BC63AF0007B56E8 /* CoreImage.framework in Frameworks */,
|
||||||
1E277B76988DF1691E8E5A49 /* Pods_SwiftProject.framework in Frameworks */,
|
1E277B76988DF1691E8E5A49 /* Pods_SwiftProject.framework in Frameworks */,
|
||||||
006B61D32BBAA938003FCB49 /* StoreKit.framework in Frameworks */,
|
006B61D32BBAA938003FCB49 /* StoreKit.framework in Frameworks */,
|
||||||
AF2120D42B4E99FA00400B7F /* MobileCoreServices.framework in Frameworks */,
|
AF2120D42B4E99FA00400B7F /* MobileCoreServices.framework in Frameworks */,
|
||||||
@ -295,6 +304,23 @@
|
|||||||
path = CCSpatialPhotoDisplayController;
|
path = CCSpatialPhotoDisplayController;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
009DFB0C2BC8CEC7007B56E8 /* FeedbackView */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
009DFB0D2BC8CFA2007B56E8 /* FeedbackView.swift */,
|
||||||
|
);
|
||||||
|
path = FeedbackView;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
009DFB0F2BC8E2D1007B56E8 /* MenuVC */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
009DFB102BC8E2E9007B56E8 /* MenuVC.swift */,
|
||||||
|
009DFB122BC8EA90007B56E8 /* MenuVCCell.swift */,
|
||||||
|
);
|
||||||
|
path = MenuVC;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
1E02C9302B89909000DD3143 /* DeviceOperation */ = {
|
1E02C9302B89909000DD3143 /* DeviceOperation */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@ -401,6 +427,7 @@
|
|||||||
4D8F3A411661D600CD07B39B /* Frameworks */ = {
|
4D8F3A411661D600CD07B39B /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
009DFB022BC63AF0007B56E8 /* CoreImage.framework */,
|
||||||
006B61D22BBAA938003FCB49 /* StoreKit.framework */,
|
006B61D22BBAA938003FCB49 /* StoreKit.framework */,
|
||||||
009661FB2BADB20D00FCA65F /* CoreMotion.framework */,
|
009661FB2BADB20D00FCA65F /* CoreMotion.framework */,
|
||||||
009661F92BAD876200FCA65F /* PhotosUI.framework */,
|
009661F92BAD876200FCA65F /* PhotosUI.framework */,
|
||||||
@ -538,6 +565,7 @@
|
|||||||
AF2120A72B4E83B000400B7F /* Controller */ = {
|
AF2120A72B4E83B000400B7F /* Controller */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
009DFB0F2BC8E2D1007B56E8 /* MenuVC */,
|
||||||
006B61C82BBA4AF2003FCB49 /* MembershipVC */,
|
006B61C82BBA4AF2003FCB49 /* MembershipVC */,
|
||||||
1EEF683C2B8D076B00B953F7 /* VRPreview */,
|
1EEF683C2B8D076B00B953F7 /* VRPreview */,
|
||||||
1E39459C2B83837900D0F5CA /* RecordingVideo */,
|
1E39459C2B83837900D0F5CA /* RecordingVideo */,
|
||||||
@ -554,6 +582,7 @@
|
|||||||
AF2120A82B4E83B000400B7F /* View */ = {
|
AF2120A82B4E83B000400B7F /* View */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
009DFB0C2BC8CEC7007B56E8 /* FeedbackView */,
|
||||||
006B61DA2BBCFA54003FCB49 /* CustomSheetController */,
|
006B61DA2BBCFA54003FCB49 /* CustomSheetController */,
|
||||||
1E1EA28A2B9326DB00A5D5D2 /* CCSpatialDisplayTypeView */,
|
1E1EA28A2B9326DB00A5D5D2 /* CCSpatialDisplayTypeView */,
|
||||||
1EFAF0B42B8AF003002A1773 /* Album */,
|
1EFAF0B42B8AF003002A1773 /* Album */,
|
||||||
@ -758,6 +787,7 @@
|
|||||||
1E1EA2962B936C9600A5D5D2 /* VideoConvertor2.swift in Sources */,
|
1E1EA2962B936C9600A5D5D2 /* VideoConvertor2.swift in Sources */,
|
||||||
AF2120CA2B4E95DA00400B7F /* UITableView+Add.swift in Sources */,
|
AF2120CA2B4E95DA00400B7F /* UITableView+Add.swift in Sources */,
|
||||||
1EFAF0BA2B8AF5EF002A1773 /* UIView+CCExtension.swift in Sources */,
|
1EFAF0BA2B8AF5EF002A1773 /* UIView+CCExtension.swift in Sources */,
|
||||||
|
009DFB0E2BC8CFA2007B56E8 /* FeedbackView.swift in Sources */,
|
||||||
AF2120C42B4E95DA00400B7F /* UIImage+Add.swift in Sources */,
|
AF2120C42B4E95DA00400B7F /* UIImage+Add.swift in Sources */,
|
||||||
1EFAF0C02B8B7A59002A1773 /* VRPhotoTransformController.swift in Sources */,
|
1EFAF0C02B8B7A59002A1773 /* VRPhotoTransformController.swift in Sources */,
|
||||||
AF21210B2B4EA7FE00400B7F /* CCRequest.swift in Sources */,
|
AF21210B2B4EA7FE00400B7F /* CCRequest.swift in Sources */,
|
||||||
@ -772,6 +802,7 @@
|
|||||||
1EFB8C6C2B88D52200C72119 /* CCCommonFile.swift in Sources */,
|
1EFB8C6C2B88D52200C72119 /* CCCommonFile.swift in Sources */,
|
||||||
1EE5C5FA2B8F97BF00EDFC2F /* SpatialVideoWriter.swift in Sources */,
|
1EE5C5FA2B8F97BF00EDFC2F /* SpatialVideoWriter.swift in Sources */,
|
||||||
1EFB8C762B88DD1200C72119 /* CCTransformProgressPopView.swift in Sources */,
|
1EFB8C762B88DD1200C72119 /* CCTransformProgressPopView.swift in Sources */,
|
||||||
|
009DFB112BC8E2E9007B56E8 /* MenuVC.swift in Sources */,
|
||||||
AF2121042B4EA61A00400B7F /* CCMineView.swift in Sources */,
|
AF2121042B4EA61A00400B7F /* CCMineView.swift in Sources */,
|
||||||
AF21210D2B4EA86700400B7F /* RootData.swift in Sources */,
|
AF21210D2B4EA86700400B7F /* RootData.swift in Sources */,
|
||||||
AF2121092B4EA7E200400B7F /* CCRequestDefine.swift in Sources */,
|
AF2121092B4EA7E200400B7F /* CCRequestDefine.swift in Sources */,
|
||||||
@ -795,6 +826,7 @@
|
|||||||
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */,
|
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */,
|
||||||
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */,
|
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */,
|
||||||
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */,
|
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */,
|
||||||
|
009DFB132BC8EA90007B56E8 /* MenuVCCell.swift in Sources */,
|
||||||
AF2120E02B4E9C8000400B7F /* Timer+Add.swift in Sources */,
|
AF2120E02B4E9C8000400B7F /* Timer+Add.swift in Sources */,
|
||||||
006B61C72BBA499D003FCB49 /* SKUPay.swift in Sources */,
|
006B61C72BBA499D003FCB49 /* SKUPay.swift in Sources */,
|
||||||
AF2120DE2B4E9C3500400B7F /* AppDelegate+Add.swift in Sources */,
|
AF2120DE2B4E9C3500400B7F /* AppDelegate+Add.swift in Sources */,
|
||||||
|
|||||||
@ -14,8 +14,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "550"
|
startingLineNumber = "555"
|
||||||
endingLineNumber = "550"
|
endingLineNumber = "555"
|
||||||
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
|
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@ -30,8 +30,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "542"
|
startingLineNumber = "547"
|
||||||
endingLineNumber = "542"
|
endingLineNumber = "547"
|
||||||
landmarkName = "CCHomeController"
|
landmarkName = "CCHomeController"
|
||||||
landmarkType = "21">
|
landmarkType = "21">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@ -94,8 +94,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "506"
|
startingLineNumber = "511"
|
||||||
endingLineNumber = "506"
|
endingLineNumber = "511"
|
||||||
landmarkName = "gotoVideoTransformVC(url:asset:)"
|
landmarkName = "gotoVideoTransformVC(url:asset:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@ -467,8 +467,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "47"
|
startingLineNumber = "52"
|
||||||
endingLineNumber = "47"
|
endingLineNumber = "52"
|
||||||
landmarkName = "convertFrame(request:)"
|
landmarkName = "convertFrame(request:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
<Locations>
|
<Locations>
|
||||||
@ -515,8 +515,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "52"
|
startingLineNumber = "57"
|
||||||
endingLineNumber = "52"
|
endingLineNumber = "57"
|
||||||
landmarkName = "convertFrame(request:)"
|
landmarkName = "convertFrame(request:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
<Locations>
|
<Locations>
|
||||||
@ -631,6 +631,70 @@
|
|||||||
endingLineNumber = "551"
|
endingLineNumber = "551"
|
||||||
landmarkName = "displayUpdate(caDisplayLink:)"
|
landmarkName = "displayUpdate(caDisplayLink:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
|
<Locations>
|
||||||
|
<Location
|
||||||
|
uuid = "BB183D45-3193-4FC7-92DB-275D529A4AE6 - bc6a78627bfebfd5"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "SwiftProject.CCSpatialVideoDisplayController.displayUpdate(caDisplayLink: __C.CADisplayLink) -> ()"
|
||||||
|
moduleName = "SwiftProject"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "531"
|
||||||
|
endingLineNumber = "531"
|
||||||
|
offsetFromSymbolStart = "56">
|
||||||
|
</Location>
|
||||||
|
<Location
|
||||||
|
uuid = "BB183D45-3193-4FC7-92DB-275D529A4AE6 - bc6a78627bfebc61"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
symbolName = "SwiftProject.CCSpatialVideoDisplayController.displayUpdate(caDisplayLink: __C.CADisplayLink) -> ()"
|
||||||
|
moduleName = "SwiftProject"
|
||||||
|
usesParentBreakpointCondition = "Yes"
|
||||||
|
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "551"
|
||||||
|
endingLineNumber = "551"
|
||||||
|
offsetFromSymbolStart = "56">
|
||||||
|
</Location>
|
||||||
|
</Locations>
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "9C211AFB-7D3C-4FF9-8941-F85898C8CF92"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "SwiftProject/Project/View/FeedbackView/FeedbackView.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "128"
|
||||||
|
endingLineNumber = "128"
|
||||||
|
landmarkName = "negativeAction(sender:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "056F3D91-99BC-416B-8689-AD6B924C7739"
|
||||||
|
shouldBeEnabled = "Yes"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "SwiftProject/Project/View/FeedbackView/FeedbackView.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "120"
|
||||||
|
endingLineNumber = "120"
|
||||||
|
landmarkName = "praiseAction(sender:)"
|
||||||
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
</Breakpoints>
|
</Breakpoints>
|
||||||
|
|||||||
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
23
SwiftProject/SwiftProject/Assets.xcassets/Feedback/feedback_centerbg.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Group_1597880441.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Group_1597880441@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Group_1597880441@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
SwiftProject/SwiftProject/Assets.xcassets/Feedback/feedback_centerbg.imageset/Group_1597880441.png
vendored
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 82 KiB |
23
SwiftProject/SwiftProject/Assets.xcassets/Feedback/feedback_close.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Group_1597880438.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Group_1597880438@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Group_1597880438@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
SwiftProject/SwiftProject/Assets.xcassets/Feedback/feedback_close.imageset/Group_1597880438.png
vendored
Normal file
|
After Width: | Height: | Size: 776 B |
BIN
SwiftProject/SwiftProject/Assets.xcassets/Feedback/feedback_close.imageset/Group_1597880438@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
SwiftProject/SwiftProject/Assets.xcassets/Feedback/feedback_close.imageset/Group_1597880438@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
23
SwiftProject/SwiftProject/Assets.xcassets/mine/menuvc/menuvc_backbtn.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "Direction.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Direction@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "Direction@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
SwiftProject/SwiftProject/Assets.xcassets/mine/menuvc/menuvc_backbtn.imageset/Direction.png
vendored
Normal file
|
After Width: | Height: | Size: 269 B |
BIN
SwiftProject/SwiftProject/Assets.xcassets/mine/menuvc/menuvc_backbtn.imageset/Direction@2x.png
vendored
Normal file
|
After Width: | Height: | Size: 484 B |
BIN
SwiftProject/SwiftProject/Assets.xcassets/mine/menuvc/menuvc_backbtn.imageset/Direction@3x.png
vendored
Normal file
|
After Width: | Height: | Size: 870 B |
@ -133,6 +133,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
|||||||
|
|
||||||
centerView()
|
centerView()
|
||||||
bottomButton()
|
bottomButton()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override func viewDidDisappear(_ animated: Bool) {
|
override func viewDidDisappear(_ animated: Bool) {
|
||||||
@ -375,6 +376,10 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
|||||||
|
|
||||||
|
|
||||||
func addMenu(){
|
func addMenu(){
|
||||||
|
let vc = MenuVC()
|
||||||
|
self.navigationController?.pushViewController(vc, animated: true)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
mBackView = UIView(frame: self.view.bounds)
|
mBackView = UIView(frame: self.view.bounds)
|
||||||
mBackView!.backgroundColor = UIColor.colorWithRGB(_r: 0, _g: 0, _b: 0, alpha: 0.01)
|
mBackView!.backgroundColor = UIColor.colorWithRGB(_r: 0, _g: 0, _b: 0, alpha: 0.01)
|
||||||
|
|||||||
155
SwiftProject/SwiftProject/Project/Controller/MenuVC/MenuVC.swift
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
//
|
||||||
|
// MenuVC.swift
|
||||||
|
// SwiftProject
|
||||||
|
//
|
||||||
|
// Created by aaa on 2024/4/12.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import Firebase
|
||||||
|
class MenuVC: BaseController,UITableViewDelegate,UITableViewDataSource {
|
||||||
|
|
||||||
|
static let kMenuVCCell_identifier = "kMenuVCCell_identifier"
|
||||||
|
var dataSource:[[[String:String]]] {
|
||||||
|
get {
|
||||||
|
return [[["image":"icon","title":NSLocalizedString("Share VPCamera", comment: "")],
|
||||||
|
["image":"icon","title":NSLocalizedString("Feedback", comment: "")]],
|
||||||
|
[["image":"icon","title":NSLocalizedString("Privacy Policy", comment: "")],
|
||||||
|
["image":"icon","title":NSLocalizedString("Terms of Service", comment: "")]],
|
||||||
|
[["image":"icon","title":NSLocalizedString("WeChat", comment: "")],
|
||||||
|
["image":"icon","title":NSLocalizedString("Tencent QQ", comment: "")],
|
||||||
|
["image":"icon","title":NSLocalizedString("Telegram", comment: "")],
|
||||||
|
["image":"icon","title":NSLocalizedString("Share VPCamera", comment: "")]]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
self.configureUI()
|
||||||
|
// self.configureData()
|
||||||
|
// {
|
||||||
|
// "default":[{"icon":"xxxxxx","title":"wecht","url":""},
|
||||||
|
// {"icon":"xxxxxx","title":"wecht","url":""}
|
||||||
|
// ],
|
||||||
|
// "zh":[],
|
||||||
|
// "en":[]
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// UIApplication.openURL("tel://")
|
||||||
|
// "image:d"
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewWillDisappear(_ animated: Bool) {
|
||||||
|
super.viewWillDisappear(animated)
|
||||||
|
// if UserInfo.sharedInstance.isMemberShip {//统计
|
||||||
|
//
|
||||||
|
// Analytics.logEvent("iap_isvip_pv", parameters: nil)
|
||||||
|
// }
|
||||||
|
// else {
|
||||||
|
// Analytics.logEvent("iap_unvip_pv", parameters: nil)
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
func configureUI() {
|
||||||
|
self.navLine?.isHidden = true
|
||||||
|
self.setLeftOneBtnImg(imgStr: "menuvc_backbtn")
|
||||||
|
self.leftBtn1?.addTarget(self, action: #selector(dismissVC(sender: )), for: .touchUpInside)
|
||||||
|
self.view.backgroundColor = UIColor(r: 6, g: 5, b: 7, a: 1)
|
||||||
|
let topView = topView()
|
||||||
|
self.view.addSubview(topView)
|
||||||
|
topView.snp.makeConstraints { make in
|
||||||
|
make.top.equalToSuperview().offset(113)
|
||||||
|
make.left.right.equalToSuperview()
|
||||||
|
make.height.equalTo(162)
|
||||||
|
}
|
||||||
|
|
||||||
|
let bottomView = buttomView()
|
||||||
|
self.view.addSubview(bottomView)
|
||||||
|
bottomView.snp.makeConstraints { make in
|
||||||
|
make.left.right.equalToSuperview()
|
||||||
|
make.bottom.equalToSuperview().offset(-20)
|
||||||
|
make.top.equalTo(topView.snp.bottom).offset(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func topView() -> UIView {
|
||||||
|
let bgView = UIView()
|
||||||
|
let imageView = UIImageView()
|
||||||
|
bgView.addSubview(imageView)
|
||||||
|
imageView.image = UIImage(named: "AppIcon")
|
||||||
|
imageView.layer.cornerRadius = 10
|
||||||
|
imageView.layer.masksToBounds = true
|
||||||
|
imageView.snp.makeConstraints { make in
|
||||||
|
make.width.height.equalTo(86)
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.top.equalToSuperview().offset(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
let titleLabel = UILabel()
|
||||||
|
bgView.addSubview(titleLabel)
|
||||||
|
titleLabel.snp.makeConstraints { make in
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.top.equalTo(imageView.snp.bottom).offset(8)
|
||||||
|
}
|
||||||
|
titleLabel.text = "VPCamera"
|
||||||
|
titleLabel.textColor = .white
|
||||||
|
titleLabel.font = UIFont(name: "PingFangSC-Medium", size: 16)
|
||||||
|
|
||||||
|
let verLabel = UILabel()
|
||||||
|
bgView.addSubview(verLabel)
|
||||||
|
verLabel.snp.makeConstraints { make in
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.top.equalTo(titleLabel.snp.bottom).offset(4)
|
||||||
|
}
|
||||||
|
verLabel.textColor = UIColor(red: 0.78, green: 0.78, blue: 0.8, alpha: 1)
|
||||||
|
verLabel.font = UIFont(name: "PingFangSC-Medium", size: 14)
|
||||||
|
verLabel.text = ZZHHelper.getVersion()
|
||||||
|
return bgView
|
||||||
|
}
|
||||||
|
|
||||||
|
func buttomView() -> UIView {
|
||||||
|
let bgView = UIView()
|
||||||
|
let tableView = UITableView(frame: .zero, style: .insetGrouped)
|
||||||
|
tableView.register(MenuVCCell.classForCoder(), forCellReuseIdentifier: MenuVC.kMenuVCCell_identifier)
|
||||||
|
bgView.addSubview(tableView)
|
||||||
|
tableView.snp.makeConstraints { make in
|
||||||
|
make.left.top.bottom.right.equalToSuperview()
|
||||||
|
}
|
||||||
|
tableView.backgroundColor = .red
|
||||||
|
return bgView
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func dismissVC(sender:UIButton) {
|
||||||
|
self.dismiss(animated: true)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//MARK: - TableViewDelegate and DataSource
|
||||||
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func numberOfSections(in tableView: UITableView) -> Int {
|
||||||
|
return 3
|
||||||
|
}
|
||||||
|
|
||||||
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
||||||
|
let cell = tableView.dequeueReusableCell(withIdentifier: MenuVC.kMenuVCCell_identifier, for: indexPath)
|
||||||
|
return cell
|
||||||
|
}
|
||||||
|
|
||||||
|
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
|
||||||
|
55
|
||||||
|
}
|
||||||
|
|
||||||
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
|
||||||
|
return UIView()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
//
|
||||||
|
// MenuVCCell.swift
|
||||||
|
// SwiftProject
|
||||||
|
//
|
||||||
|
// Created by aaa on 2024/4/12.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
class MenuVCCell: UITableViewCell {
|
||||||
|
var limgView:UIImageView?
|
||||||
|
var ltitleLabel:UILabel?
|
||||||
|
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
|
||||||
|
super.init(style: style, reuseIdentifier: reuseIdentifier)
|
||||||
|
self.backgroundColor = UIColor(r: 29, g: 29, b: 29, a: 1)
|
||||||
|
limgView = UIImageView()
|
||||||
|
self.contentView.addSubview(limgView!)
|
||||||
|
ltitleLabel = UILabel()
|
||||||
|
self.contentView.addSubview(ltitleLabel!)
|
||||||
|
|
||||||
|
limgView?.snp.makeConstraints({ make in
|
||||||
|
make.width.height.equalTo(20)
|
||||||
|
make.centerY.equalToSuperview()
|
||||||
|
make.left.equalToSuperview().offset(16)
|
||||||
|
})
|
||||||
|
|
||||||
|
ltitleLabel?.snp.makeConstraints {[weak self] make in
|
||||||
|
make.centerY.equalToSuperview()
|
||||||
|
make.left.equalTo((self?.limgView!.snp.right)!).offset(12)
|
||||||
|
}
|
||||||
|
|
||||||
|
ltitleLabel!.textColor = UIColor(red: 1, green: 1, blue: 1, alpha: 1)
|
||||||
|
ltitleLabel!.font = UIFont(name: "PingFangSC-Medium", size: 14)
|
||||||
|
}
|
||||||
|
|
||||||
|
required init?(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -40,6 +40,8 @@ extension CCSpatialVideoDisplayController {
|
|||||||
let tr = CMTimeRange(start: compositionTime, end: end)
|
let tr = CMTimeRange(start: compositionTime, end: end)
|
||||||
// let tr_All = CMTimeRange(start: compositionTime, duration: .positiveInfinity)
|
// let tr_All = CMTimeRange(start: compositionTime, duration: .positiveInfinity)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var ciImg:CIImage? = nil
|
var ciImg:CIImage? = nil
|
||||||
switch self.selectedIndex {
|
switch self.selectedIndex {
|
||||||
@ -147,6 +149,7 @@ extension CCSpatialVideoDisplayController {
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
assetOutput?.supportsRandomAccess = true
|
assetOutput?.supportsRandomAccess = true
|
||||||
|
assetOutput?.alwaysCopiesSampleData = false
|
||||||
assetReader!.timeRange = timeRange
|
assetReader!.timeRange = timeRange
|
||||||
assetReader!.add(assetOutput!)
|
assetReader!.add(assetOutput!)
|
||||||
assetReader!.startReading()
|
assetReader!.startReading()
|
||||||
|
|||||||
@ -16,8 +16,11 @@ import ImageIO
|
|||||||
class PlayByTransferConvertor {
|
class PlayByTransferConvertor {
|
||||||
func convertVideo(asset:AVAsset, assetOutput:AVAssetReaderTrackOutput,type:SpatialType,time: CMTime)->(CIImage?) {
|
func convertVideo(asset:AVAsset, assetOutput:AVAssetReaderTrackOutput,type:SpatialType,time: CMTime)->(CIImage?) {
|
||||||
var newpb:CIImage? = nil
|
var newpb:CIImage? = nil
|
||||||
// print("sta.....>>>>>>>")
|
print("sta.....>>>>>>>\(Date.now.timeIntervalSince1970)")
|
||||||
while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() {
|
while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() {
|
||||||
|
print("nextSampleBuffer.....+++++++\(Date.now.timeIntervalSince1970)")
|
||||||
|
return nil
|
||||||
|
|
||||||
// print("PlayByTransferConvertor while")
|
// print("PlayByTransferConvertor while")
|
||||||
let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer)
|
let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer)
|
||||||
if presentationTime == time {
|
if presentationTime == time {
|
||||||
|
|||||||
@ -78,4 +78,13 @@ class ZZHHelper {
|
|||||||
}
|
}
|
||||||
return sec
|
return sec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class func getVersion()->String {
|
||||||
|
var verStr = "version"
|
||||||
|
if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
|
||||||
|
verStr = "version \(appVersion)"
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
return verStr
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,175 @@
|
|||||||
|
//
|
||||||
|
// FeedbackView.swift
|
||||||
|
// SwiftProject
|
||||||
|
//
|
||||||
|
// Created by aaa on 2024/4/12.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
class FeedbackView: UIView {
|
||||||
|
var scenterBgView:UIView?
|
||||||
|
var alphaBgView:UIView?
|
||||||
|
var praiseCallback:(()->Void?)? = nil
|
||||||
|
var negativeCallback:(()->Void?)? = nil
|
||||||
|
|
||||||
|
required init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override init(frame: CGRect) {
|
||||||
|
super.init(frame: frame)
|
||||||
|
|
||||||
|
alphaBgView = UIView()
|
||||||
|
self.addSubview(alphaBgView!)
|
||||||
|
alphaBgView!.backgroundColor = UIColor(r: 10, g: 10, b: 10, a: 0.2)
|
||||||
|
alphaBgView?.alpha = 0
|
||||||
|
alphaBgView?.snp.makeConstraints({ make in
|
||||||
|
make.top.left.right.bottom.equalToSuperview()
|
||||||
|
})
|
||||||
|
|
||||||
|
let tgr = UITapGestureRecognizer(target: self, action: #selector(hiddenSelf))
|
||||||
|
self.addGestureRecognizer(tgr)
|
||||||
|
|
||||||
|
let centerBgView = UIView()
|
||||||
|
scenterBgView = centerBgView
|
||||||
|
self.addSubview(centerBgView)
|
||||||
|
centerBgView.snp.makeConstraints { make in
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.centerY.equalToSuperview().offset(KScreenHeight+200)
|
||||||
|
make.width.equalTo(282)
|
||||||
|
make.height.equalTo(336)
|
||||||
|
}
|
||||||
|
|
||||||
|
let centerBg_ImageView = UIImageView()
|
||||||
|
centerBgView.addSubview(centerBg_ImageView)
|
||||||
|
centerBg_ImageView.image = UIImage(named: "feedback_centerbg")
|
||||||
|
centerBg_ImageView.contentMode = .scaleAspectFill
|
||||||
|
|
||||||
|
centerBg_ImageView.snp.makeConstraints { make in
|
||||||
|
make.top.right.bottom.left.equalToSuperview()
|
||||||
|
}
|
||||||
|
|
||||||
|
let desLabel = UILabel()
|
||||||
|
centerBgView.addSubview(desLabel)
|
||||||
|
desLabel.snp.makeConstraints { make in
|
||||||
|
make.left.equalToSuperview().offset(21)
|
||||||
|
make.right.equalToSuperview().offset(-21)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
desLabel.textColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
|
||||||
|
desLabel.font = UIFont(name: "PingFangSC-Medium", size: 12)
|
||||||
|
desLabel.numberOfLines = 0
|
||||||
|
desLabel.lineBreakMode = .byWordWrapping
|
||||||
|
desLabel.textAlignment = .center
|
||||||
|
let paragraphStyle = NSMutableParagraphStyle()
|
||||||
|
paragraphStyle.lineHeightMultiple = 1
|
||||||
|
paragraphStyle.alignment = .center
|
||||||
|
desLabel.attributedText = NSMutableAttributedString(string: NSLocalizedString("v1.5_feedbackdesc", comment: ""), attributes: [NSAttributedString.Key.paragraphStyle: paragraphStyle])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let praiseBtn = UIButton()
|
||||||
|
centerBgView.addSubview(praiseBtn)
|
||||||
|
praiseBtn.snp.makeConstraints { make in
|
||||||
|
make.left.equalToSuperview().offset(26)
|
||||||
|
make.right.equalToSuperview().offset(-26)
|
||||||
|
make.height.equalTo(38)
|
||||||
|
make.top.equalTo(desLabel.snp.bottom).offset(13)
|
||||||
|
}
|
||||||
|
praiseBtn.backgroundColor = UIColor(r: 254, g: 50, b: 101, a: 1)
|
||||||
|
praiseBtn.addTarget(self, action: #selector(praiseAction(sender: )), for: .touchUpInside)
|
||||||
|
praiseBtn.layer.cornerRadius = 8
|
||||||
|
praiseBtn.layer.masksToBounds = true
|
||||||
|
praiseBtn.setTitle(NSLocalizedString("v1.5_praise", comment: ""), for: .normal)
|
||||||
|
praiseBtn.titleLabel?.font = UIFont(name: "PingFangSC-Heavy", size: 16)
|
||||||
|
praiseBtn.setTitleColor(.white, for: .normal)
|
||||||
|
let negativeBtn = UIButton()
|
||||||
|
centerBgView.addSubview(negativeBtn)
|
||||||
|
negativeBtn.addTarget(self, action: #selector(negativeAction(sender: )), for: .touchUpInside)
|
||||||
|
negativeBtn.snp.makeConstraints { make in
|
||||||
|
make.left.equalToSuperview().offset(26)
|
||||||
|
make.right.equalToSuperview().offset(-26)
|
||||||
|
make.height.equalTo(20)
|
||||||
|
make.top.equalTo(praiseBtn.snp.bottom).offset(16)
|
||||||
|
make.bottom.equalToSuperview().offset(-16)
|
||||||
|
}
|
||||||
|
negativeBtn.setTitle(NSLocalizedString("v1.5_negative", comment: ""), for: .normal)
|
||||||
|
negativeBtn.titleLabel?.font = UIFont(name: "PingFangSC-Medium", size: 16)
|
||||||
|
negativeBtn.setTitleColor(UIColor(red: 0, green: 0, blue: 0, alpha: 0.6), for: .normal)
|
||||||
|
|
||||||
|
let closeBtn = UIButton()
|
||||||
|
self.addSubview(closeBtn)
|
||||||
|
closeBtn.setImage(UIImage(named: "feedback_close"), for: .normal)
|
||||||
|
closeBtn.addTarget(self, action: #selector(closeAction(sender: )), for: .touchUpInside)
|
||||||
|
closeBtn.snp.makeConstraints { make in
|
||||||
|
make.width.height.equalTo(32)
|
||||||
|
make.centerX.equalToSuperview()
|
||||||
|
make.top.equalTo(centerBgView.snp.bottom).offset(26)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func closeAction(sender:UIButton) {
|
||||||
|
hiddenSelf()
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func praiseAction(sender:UIButton) {
|
||||||
|
hiddenSelf()
|
||||||
|
guard let praiseCallback else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
praiseCallback()
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func negativeAction(sender:UIButton) {
|
||||||
|
hiddenSelf()
|
||||||
|
guard let negativeCallback else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
negativeCallback()
|
||||||
|
}
|
||||||
|
|
||||||
|
func show(){
|
||||||
|
self.isHidden = false
|
||||||
|
UIView.animate(withDuration: 0.25) {[weak self] in
|
||||||
|
self?.scenterBgView!.snp.updateConstraints({ make in
|
||||||
|
make.centerY.equalToSuperview().offset(0)
|
||||||
|
})
|
||||||
|
self?.alphaBgView?.alpha = 1
|
||||||
|
self?.layoutIfNeeded()
|
||||||
|
} completion: {finish in
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class func show(praiseCallback:@escaping ()->Void,negativeCallback:@escaping ()->Void) {
|
||||||
|
let fbView = FeedbackView(frame: .zero)
|
||||||
|
fbView.praiseCallback = praiseCallback
|
||||||
|
fbView.negativeCallback = negativeCallback
|
||||||
|
|
||||||
|
fbView.isHidden = true
|
||||||
|
KWindow?.addSubview(fbView)
|
||||||
|
fbView.snp.makeConstraints { make in
|
||||||
|
make.left.top.right.bottom.equalToSuperview()
|
||||||
|
}
|
||||||
|
KWindow?.layoutIfNeeded()
|
||||||
|
fbView.show()
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc func hiddenSelf() {
|
||||||
|
UIView.animate(withDuration: 0.25) {[weak self] in
|
||||||
|
self?.scenterBgView!.snp.updateConstraints({ make in
|
||||||
|
make.centerY.equalToSuperview().offset(KScreenHeight+200)
|
||||||
|
})
|
||||||
|
self?.alphaBgView?.alpha = 0
|
||||||
|
self?.layoutIfNeeded()
|
||||||
|
} completion: {[weak self] finish in
|
||||||
|
self?.removeFromSuperview()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -115,3 +115,9 @@
|
|||||||
"右侧拨轮下按3s" = "Press right dial 3s";
|
"右侧拨轮下按3s" = "Press right dial 3s";
|
||||||
"右侧中间键长按3s" = "Hold right middle 3s";
|
"右侧中间键长按3s" = "Hold right middle 3s";
|
||||||
"右侧亮度循环按键" ="Right brightness cycle Hold 3s for HSBS, 7s for FSBS";
|
"右侧亮度循环按键" ="Right brightness cycle Hold 3s for HSBS, 7s for FSBS";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"v1.5_praise" = "Praise";
|
||||||
|
"v1.5_negative" = "Negative";
|
||||||
|
"v1.5_feedbackdesc" = "Do you like VPCamera?\nPlease rate a Five star or give a feed\n back to us";
|
||||||
|
|||||||
@ -116,3 +116,8 @@
|
|||||||
"右侧拨轮下按3s" = "右侧拨轮下按3s";
|
"右侧拨轮下按3s" = "右侧拨轮下按3s";
|
||||||
"右侧中间键长按3s" = "右侧中间键长按3s";
|
"右侧中间键长按3s" = "右侧中间键长按3s";
|
||||||
"右侧亮度循环按键" ="右侧亮度循环按键\n长按 3s 切换 HSBS\n长按 7s 切换 FSBS";
|
"右侧亮度循环按键" ="右侧亮度循环按键\n长按 3s 切换 HSBS\n长按 7s 切换 FSBS";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||