添加MenuVC、feedback页面
@ -25,6 +25,10 @@
|
||||
0096624A2BB3B45200FCA65F /* ExternalSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009662492BB3B45200FCA65F /* ExternalSceneDelegate.swift */; };
|
||||
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0096624C2BB3BA3B00FCA65F /* ZZHExternalViewController.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 */; };
|
||||
00C665732BAA81F900C309C3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 00C665722BAA81F900C309C3 /* GoogleService-Info.plist */; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -221,6 +229,7 @@
|
||||
files = (
|
||||
AF478B032B577D51005C35A5 /* AVFoundation.framework in Frameworks */,
|
||||
00EB2D052BA2D59000924D84 /* MessageUI.framework in Frameworks */,
|
||||
009DFB032BC63AF0007B56E8 /* CoreImage.framework in Frameworks */,
|
||||
1E277B76988DF1691E8E5A49 /* Pods_SwiftProject.framework in Frameworks */,
|
||||
006B61D32BBAA938003FCB49 /* StoreKit.framework in Frameworks */,
|
||||
AF2120D42B4E99FA00400B7F /* MobileCoreServices.framework in Frameworks */,
|
||||
@ -295,6 +304,23 @@
|
||||
path = CCSpatialPhotoDisplayController;
|
||||
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 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -401,6 +427,7 @@
|
||||
4D8F3A411661D600CD07B39B /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
009DFB022BC63AF0007B56E8 /* CoreImage.framework */,
|
||||
006B61D22BBAA938003FCB49 /* StoreKit.framework */,
|
||||
009661FB2BADB20D00FCA65F /* CoreMotion.framework */,
|
||||
009661F92BAD876200FCA65F /* PhotosUI.framework */,
|
||||
@ -538,6 +565,7 @@
|
||||
AF2120A72B4E83B000400B7F /* Controller */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
009DFB0F2BC8E2D1007B56E8 /* MenuVC */,
|
||||
006B61C82BBA4AF2003FCB49 /* MembershipVC */,
|
||||
1EEF683C2B8D076B00B953F7 /* VRPreview */,
|
||||
1E39459C2B83837900D0F5CA /* RecordingVideo */,
|
||||
@ -554,6 +582,7 @@
|
||||
AF2120A82B4E83B000400B7F /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
009DFB0C2BC8CEC7007B56E8 /* FeedbackView */,
|
||||
006B61DA2BBCFA54003FCB49 /* CustomSheetController */,
|
||||
1E1EA28A2B9326DB00A5D5D2 /* CCSpatialDisplayTypeView */,
|
||||
1EFAF0B42B8AF003002A1773 /* Album */,
|
||||
@ -758,6 +787,7 @@
|
||||
1E1EA2962B936C9600A5D5D2 /* VideoConvertor2.swift in Sources */,
|
||||
AF2120CA2B4E95DA00400B7F /* UITableView+Add.swift in Sources */,
|
||||
1EFAF0BA2B8AF5EF002A1773 /* UIView+CCExtension.swift in Sources */,
|
||||
009DFB0E2BC8CFA2007B56E8 /* FeedbackView.swift in Sources */,
|
||||
AF2120C42B4E95DA00400B7F /* UIImage+Add.swift in Sources */,
|
||||
1EFAF0C02B8B7A59002A1773 /* VRPhotoTransformController.swift in Sources */,
|
||||
AF21210B2B4EA7FE00400B7F /* CCRequest.swift in Sources */,
|
||||
@ -772,6 +802,7 @@
|
||||
1EFB8C6C2B88D52200C72119 /* CCCommonFile.swift in Sources */,
|
||||
1EE5C5FA2B8F97BF00EDFC2F /* SpatialVideoWriter.swift in Sources */,
|
||||
1EFB8C762B88DD1200C72119 /* CCTransformProgressPopView.swift in Sources */,
|
||||
009DFB112BC8E2E9007B56E8 /* MenuVC.swift in Sources */,
|
||||
AF2121042B4EA61A00400B7F /* CCMineView.swift in Sources */,
|
||||
AF21210D2B4EA86700400B7F /* RootData.swift in Sources */,
|
||||
AF2121092B4EA7E200400B7F /* CCRequestDefine.swift in Sources */,
|
||||
@ -795,6 +826,7 @@
|
||||
0096624D2BB3BA3B00FCA65F /* ZZHExternalViewController.swift in Sources */,
|
||||
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */,
|
||||
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */,
|
||||
009DFB132BC8EA90007B56E8 /* MenuVCCell.swift in Sources */,
|
||||
AF2120E02B4E9C8000400B7F /* Timer+Add.swift in Sources */,
|
||||
006B61C72BBA499D003FCB49 /* SKUPay.swift in Sources */,
|
||||
AF2120DE2B4E9C3500400B7F /* AppDelegate+Add.swift in Sources */,
|
||||
|
||||
@ -14,8 +14,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "550"
|
||||
endingLineNumber = "550"
|
||||
startingLineNumber = "555"
|
||||
endingLineNumber = "555"
|
||||
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@ -30,8 +30,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "542"
|
||||
endingLineNumber = "542"
|
||||
startingLineNumber = "547"
|
||||
endingLineNumber = "547"
|
||||
landmarkName = "CCHomeController"
|
||||
landmarkType = "21">
|
||||
</BreakpointContent>
|
||||
@ -94,8 +94,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "506"
|
||||
endingLineNumber = "506"
|
||||
startingLineNumber = "511"
|
||||
endingLineNumber = "511"
|
||||
landmarkName = "gotoVideoTransformVC(url:asset:)"
|
||||
landmarkType = "7">
|
||||
</BreakpointContent>
|
||||
@ -467,8 +467,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "47"
|
||||
endingLineNumber = "47"
|
||||
startingLineNumber = "52"
|
||||
endingLineNumber = "52"
|
||||
landmarkName = "convertFrame(request:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@ -515,8 +515,8 @@
|
||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialVideoDisplayController/CCSpatialVideoDisplayForVideoTask.swift"
|
||||
startingColumnNumber = "9223372036854775807"
|
||||
endingColumnNumber = "9223372036854775807"
|
||||
startingLineNumber = "52"
|
||||
endingLineNumber = "52"
|
||||
startingLineNumber = "57"
|
||||
endingLineNumber = "57"
|
||||
landmarkName = "convertFrame(request:)"
|
||||
landmarkType = "7">
|
||||
<Locations>
|
||||
@ -631,6 +631,70 @@
|
||||
endingLineNumber = "551"
|
||||
landmarkName = "displayUpdate(caDisplayLink:)"
|
||||
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>
|
||||
</BreakpointProxy>
|
||||
</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()
|
||||
bottomButton()
|
||||
|
||||
}
|
||||
|
||||
override func viewDidDisappear(_ animated: Bool) {
|
||||
@ -375,6 +376,10 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
|
||||
|
||||
|
||||
func addMenu(){
|
||||
let vc = MenuVC()
|
||||
self.navigationController?.pushViewController(vc, animated: true)
|
||||
return
|
||||
|
||||
|
||||
mBackView = UIView(frame: self.view.bounds)
|
||||
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")
|
||||
}
|
||||
|
||||
}
|
||||
@ -41,6 +41,8 @@ extension CCSpatialVideoDisplayController {
|
||||
// let tr_All = CMTimeRange(start: compositionTime, duration: .positiveInfinity)
|
||||
|
||||
|
||||
|
||||
|
||||
var ciImg:CIImage? = nil
|
||||
switch self.selectedIndex {
|
||||
case .monocular2D://双眼2d
|
||||
@ -147,6 +149,7 @@ extension CCSpatialVideoDisplayController {
|
||||
]
|
||||
)
|
||||
assetOutput?.supportsRandomAccess = true
|
||||
assetOutput?.alwaysCopiesSampleData = false
|
||||
assetReader!.timeRange = timeRange
|
||||
assetReader!.add(assetOutput!)
|
||||
assetReader!.startReading()
|
||||
|
||||
@ -16,8 +16,11 @@ import ImageIO
|
||||
class PlayByTransferConvertor {
|
||||
func convertVideo(asset:AVAsset, assetOutput:AVAssetReaderTrackOutput,type:SpatialType,time: CMTime)->(CIImage?) {
|
||||
var newpb:CIImage? = nil
|
||||
// print("sta.....>>>>>>>")
|
||||
print("sta.....>>>>>>>\(Date.now.timeIntervalSince1970)")
|
||||
while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() {
|
||||
print("nextSampleBuffer.....+++++++\(Date.now.timeIntervalSince1970)")
|
||||
return nil
|
||||
|
||||
// print("PlayByTransferConvertor while")
|
||||
let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer)
|
||||
if presentationTime == time {
|
||||
|
||||
@ -78,4 +78,13 @@ class ZZHHelper {
|
||||
}
|
||||
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" = "Hold right middle 3s";
|
||||
"右侧亮度循环按键" ="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";
|
||||
"右侧亮度循环按键" ="右侧亮度循环按键\n长按 3s 切换 HSBS\n长按 7s 切换 FSBS";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||