vip ui修改和会员逻辑添加

This commit is contained in:
bluesea 2024-04-03 14:38:25 +08:00
parent 4c9ae69a86
commit 37040f6f98
8 changed files with 475 additions and 62 deletions

View File

@ -15,6 +15,8 @@
006B61CF2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61CE2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift */; }; 006B61CF2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61CE2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift */; };
006B61D12BBA5DB4003FCB49 /* MembershipProductView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61D02BBA5DB4003FCB49 /* MembershipProductView.swift */; }; 006B61D12BBA5DB4003FCB49 /* MembershipProductView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61D02BBA5DB4003FCB49 /* MembershipProductView.swift */; };
006B61D32BBAA938003FCB49 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 006B61D22BBAA938003FCB49 /* StoreKit.framework */; }; 006B61D32BBAA938003FCB49 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 006B61D22BBAA938003FCB49 /* StoreKit.framework */; };
006B61DC2BBCFAC4003FCB49 /* CustomSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61DB2BBCFAC4003FCB49 /* CustomSheetController.swift */; };
006B61DE2BBCFB45003FCB49 /* CustomSheetCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61DD2BBCFB45003FCB49 /* CustomSheetCell.swift */; };
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */; }; 009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */; };
009661FA2BAD876200FCA65F /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661F92BAD876200FCA65F /* PhotosUI.framework */; }; 009661FA2BAD876200FCA65F /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661F92BAD876200FCA65F /* PhotosUI.framework */; };
009661FC2BADB20D00FCA65F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661FB2BADB20D00FCA65F /* CoreMotion.framework */; }; 009661FC2BADB20D00FCA65F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661FB2BADB20D00FCA65F /* CoreMotion.framework */; };
@ -114,6 +116,8 @@
006B61CE2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembershipVCConfigureView.swift; sourceTree = "<group>"; }; 006B61CE2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembershipVCConfigureView.swift; sourceTree = "<group>"; };
006B61D02BBA5DB4003FCB49 /* MembershipProductView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembershipProductView.swift; sourceTree = "<group>"; }; 006B61D02BBA5DB4003FCB49 /* MembershipProductView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembershipProductView.swift; sourceTree = "<group>"; };
006B61D22BBAA938003FCB49 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; 006B61D22BBAA938003FCB49 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
006B61DB2BBCFAC4003FCB49 /* CustomSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSheetController.swift; sourceTree = "<group>"; };
006B61DD2BBCFB45003FCB49 /* CustomSheetCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomSheetCell.swift; sourceTree = "<group>"; };
009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpaceAlbumFilterPopView2.swift; sourceTree = "<group>"; }; 009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CCSpaceAlbumFilterPopView2.swift; sourceTree = "<group>"; };
009661F92BAD876200FCA65F /* PhotosUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhotosUI.framework; path = System/Library/Frameworks/PhotosUI.framework; sourceTree = SDKROOT; }; 009661F92BAD876200FCA65F /* PhotosUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PhotosUI.framework; path = System/Library/Frameworks/PhotosUI.framework; sourceTree = SDKROOT; };
009661FB2BADB20D00FCA65F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; 009661FB2BADB20D00FCA65F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
@ -255,6 +259,15 @@
path = UserInfo; path = UserInfo;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
006B61DA2BBCFA54003FCB49 /* CustomSheetController */ = {
isa = PBXGroup;
children = (
006B61DB2BBCFAC4003FCB49 /* CustomSheetController.swift */,
006B61DD2BBCFB45003FCB49 /* CustomSheetCell.swift */,
);
path = CustomSheetController;
sourceTree = "<group>";
};
0096624B2BB3BA0100FCA65F /* ExternalScreen */ = { 0096624B2BB3BA0100FCA65F /* ExternalScreen */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -533,6 +546,7 @@
AF2120A82B4E83B000400B7F /* View */ = { AF2120A82B4E83B000400B7F /* View */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
006B61DA2BBCFA54003FCB49 /* CustomSheetController */,
1E1EA28A2B9326DB00A5D5D2 /* CCSpatialDisplayTypeView */, 1E1EA28A2B9326DB00A5D5D2 /* CCSpatialDisplayTypeView */,
1EFAF0B42B8AF003002A1773 /* Album */, 1EFAF0B42B8AF003002A1773 /* Album */,
1EFAF0BB2B8B1D55002A1773 /* MenuPop */, 1EFAF0BB2B8B1D55002A1773 /* MenuPop */,
@ -756,6 +770,7 @@
005580782B9F1525004B9567 /* ZZHHelper.swift in Sources */, 005580782B9F1525004B9567 /* ZZHHelper.swift in Sources */,
AF2120C32B4E95DA00400B7F /* NSObject+Add.swift in Sources */, AF2120C32B4E95DA00400B7F /* NSObject+Add.swift in Sources */,
1EE5C5F72B8F973A00EDFC2F /* CCSpatialShootController.swift in Sources */, 1EE5C5F72B8F973A00EDFC2F /* CCSpatialShootController.swift in Sources */,
006B61DE2BBCFB45003FCB49 /* CustomSheetCell.swift in Sources */,
1EFB8C782B88E2F600C72119 /* UIColor+CCExtension.swift in Sources */, 1EFB8C782B88E2F600C72119 /* UIColor+CCExtension.swift in Sources */,
00D33BF62B99A19900604A44 /* SpatialVideoConvertor.swift in Sources */, 00D33BF62B99A19900604A44 /* SpatialVideoConvertor.swift in Sources */,
AF2120EE2B4EA34E00400B7F /* BaseTableViewPlainController.swift in Sources */, AF2120EE2B4EA34E00400B7F /* BaseTableViewPlainController.swift in Sources */,
@ -802,6 +817,7 @@
006B61CF2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift in Sources */, 006B61CF2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift in Sources */,
AF2120CE2B4E979500400B7F /* CCTextField.swift in Sources */, AF2120CE2B4E979500400B7F /* CCTextField.swift in Sources */,
1E1EA2882B9325D300A5D5D2 /* CCSpatialPhotoDisplayController.swift in Sources */, 1E1EA2882B9325D300A5D5D2 /* CCSpatialPhotoDisplayController.swift in Sources */,
006B61DC2BBCFAC4003FCB49 /* CustomSheetController.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

View File

@ -649,5 +649,53 @@
</Locations> </Locations>
</BreakpointContent> </BreakpointContent>
</BreakpointProxy> </BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "4BEF85E8-981C-436B-992D-07D59423A721"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "SwiftProject/Project/View/CustomSheetController/CustomSheetController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "142"
endingLineNumber = "142"
landmarkName = "tableView(_:didSelectRowAt:)"
landmarkType = "7">
<Locations>
<Location
uuid = "4BEF85E8-981C-436B-992D-07D59423A721 - 771d9e5cdd706c61"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CustomSheetController.tableView(_: __C.UITableView, didSelectRowAt: Foundation.IndexPath) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/View/CustomSheetController/CustomSheetController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "139"
endingLineNumber = "139"
offsetFromSymbolStart = "700">
</Location>
<Location
uuid = "4BEF85E8-981C-436B-992D-07D59423A721 - 771d9e5cdd706c61"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "SwiftProject.CustomSheetController.tableView(_: __C.UITableView, didSelectRowAt: Foundation.IndexPath) -&gt; ()"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/View/CustomSheetController/CustomSheetController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "139"
endingLineNumber = "139"
offsetFromSymbolStart = "168">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints> </Breakpoints>
</Bucket> </Bucket>

View File

@ -77,9 +77,9 @@ class VRVideoTransformController: BaseController {
var videoWidth:Int = 1440 var videoWidth:Int = 1440
var videoHeight:Int = 1440 var videoHeight:Int = 1440
// //
var selectedPreset:AVOutputSettingsPreset = .mvhevc1440x1440 var selectedPreset:AVOutputSettingsPreset = .preset1280x720
//bit //bit
var selectedBitsPerPixel:VideoBitsPerPixel = .best var selectedBitsPerPixel:VideoBitsPerPixel = .low
//3D //3D
var selected3DFormat:Video3DFormat = .HSBS var selected3DFormat:Video3DFormat = .HSBS
@ -266,8 +266,8 @@ class VRVideoTransformController: BaseController {
func setSpatialParametersListData() { func setSpatialParametersListData() {
let popData = [ let popData = [
(type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"), (type:CCTransformParameterType.format3D,title:NSLocalizedString("3D 格式", comment: ""),name:"3D HSBS"),
(type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: "" ),name:NSLocalizedString("原始", comment: "")), (type:CCTransformParameterType.resolution,title:NSLocalizedString("分辨率", comment: "" ),name:"720p"),
(type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:NSLocalizedString("最佳", comment: "")), (type:CCTransformParameterType.bitRate,title:NSLocalizedString("比特率", comment: ""),name:NSLocalizedString("", comment: "")),
(type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:"H.265"), (type:CCTransformParameterType.formatVideoEncoding,title:NSLocalizedString("视频编码格式", comment: ""),name:"H.265"),
(type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")] (type:CCTransformParameterType.horizontalDialogueAdjustment,title:NSLocalizedString("水平视差调整", comment: ""),name:"0")]
@ -453,42 +453,56 @@ class VRVideoTransformController: BaseController {
1080P 1920x1080 1080P 1920x1080
4K 3840x2160 1 4K 3840x2160 1
*/ */
showResolutionAlert()
// return
// let action1 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
// self?.selectedPreset = .mvhevc1440x1440
// self?.videoWidth = 1440
// self?.videoHeight = 1440
// self?.according3DFormatShowList(format: self!.selected3DFormat)
// }
// let action2 = UIAlertAction(title: "4K" , style: .default) {[weak self] (action:UIAlertAction) in
// self!.selectedPreset = .hevc3840x2160
// self!.videoWidth = 3840
// self!.videoHeight = 2160
// self!.according3DFormatShowList(format: self!.selected3DFormat)
// }
// let action3 = UIAlertAction(title: "1080p" , style: .default) {[weak self] (action:UIAlertAction) in
// self!.selectedPreset = .hevc1920x1080
// self!.videoWidth = 1920
// self!.videoHeight = 1080
// self!.according3DFormatShowList(format: self!.selected3DFormat)
// }
// let action4 = UIAlertAction(title: "720p" , style: .default) {[weak self] (action:UIAlertAction) in
// self!.selectedPreset = .preset1280x720
// self!.videoWidth = 1280
// self!.videoHeight = 720
// self!.according3DFormatShowList(format: self!.selected3DFormat)
// }
// let cancelAction = UIAlertAction(title: NSLocalizedString("", comment: ""), style: .cancel, handler: nil)
// alert.addAction(action1)
// alert.addAction(action2)
// alert.addAction(action3)
// alert.addAction(action4)
// alert.addAction(cancelAction)
// self.present(alert, animated: true, completion: nil)
//
//
let action1 = UIAlertAction(title: NSLocalizedString("原始", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
self?.selectedPreset = .mvhevc1440x1440
self?.videoWidth = 1440
self?.videoHeight = 1440
self?.according3DFormatShowList(format: self!.selected3DFormat)
}
let action2 = UIAlertAction(title: "4K" , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedPreset = .hevc3840x2160
self!.videoWidth = 3840
self!.videoHeight = 2160
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
let action3 = UIAlertAction(title: "1080p" , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedPreset = .hevc1920x1080
self!.videoWidth = 1920
self!.videoHeight = 1080
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
let action4 = UIAlertAction(title: "720p" , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedPreset = .preset1280x720
self!.videoWidth = 1280
self!.videoHeight = 720
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil)
alert.addAction(action1)
alert.addAction(action2)
alert.addAction(action3)
alert.addAction(action4)
alert.addAction(cancelAction)
self.present(alert, animated: true, completion: nil)
break break
case .bitRate: case .bitRate:
showBitRateAlert()
print("比特率") print("比特率")
/* /*
@ -497,29 +511,29 @@ class VRVideoTransformController: BaseController {
25% 25%
*/ */
let action1 = UIAlertAction(title: NSLocalizedString("最佳", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in // let action1 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedBitsPerPixel = .best // self!.selectedBitsPerPixel = .best
self!.according3DFormatShowList(format: self!.selected3DFormat) // self!.according3DFormatShowList(format: self!.selected3DFormat)
} // }
let action2 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in // let action2 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedBitsPerPixel = .high // self!.selectedBitsPerPixel = .high
self!.according3DFormatShowList(format: self!.selected3DFormat) // self!.according3DFormatShowList(format: self!.selected3DFormat)
} // }
let action3 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in // let action3 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedBitsPerPixel = .medium // self!.selectedBitsPerPixel = .medium
self!.according3DFormatShowList(format: self!.selected3DFormat) // self!.according3DFormatShowList(format: self!.selected3DFormat)
} // }
let action4 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in // let action4 = UIAlertAction(title: NSLocalizedString("", comment: "") , style: .default) {[weak self] (action:UIAlertAction) in
self!.selectedBitsPerPixel = .low // self!.selectedBitsPerPixel = .low
self!.according3DFormatShowList(format: self!.selected3DFormat) // self!.according3DFormatShowList(format: self!.selected3DFormat)
} // }
let cancelAction = UIAlertAction(title: NSLocalizedString("取消", comment: ""), style: .cancel, handler: nil) // let cancelAction = UIAlertAction(title: NSLocalizedString("", comment: ""), style: .cancel, handler: nil)
alert.addAction(action1) // alert.addAction(action1)
alert.addAction(action2) // alert.addAction(action2)
alert.addAction(action3) // alert.addAction(action3)
alert.addAction(action4) // alert.addAction(action4)
alert.addAction(cancelAction) // alert.addAction(cancelAction)
self.present(alert, animated: true, completion: nil) // self.present(alert, animated: true, completion: nil)
break break
@ -559,6 +573,101 @@ class VRVideoTransformController: BaseController {
} }
} }
//
func showResolutionAlert() {
let alertVC = CustomSheetController()
let dataSource = [
["imgName":"vip_Diamond","text":NSLocalizedString("原始", comment: "")],
["imgName":"vip_Diamond","text":"4K"],
["imgName":"vip_Diamond","text":"1080p"],
["text":"720p"]
]
alertVC.setData(data: dataSource) {[weak self] text in
if (text == "720p"){
self!.selectedPreset = .preset1280x720
self!.videoWidth = 1280
self!.videoHeight = 720
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
else {
if !UserInfo.sharedInstance.isMemberShip {
//
let vc:MembershipVC = MembershipVC()
let nav = UINavigationController(rootViewController: vc)
nav.modalTransitionStyle = UIModalTransitionStyle.coverVertical
nav.modalPresentationStyle = .fullScreen
self?.present(nav, animated: true)
}
else {
if (text == NSLocalizedString("原始", comment: "")) {
self?.selectedPreset = .mvhevc1440x1440
self?.videoWidth = 1440
self?.videoHeight = 1440
self?.according3DFormatShowList(format: self!.selected3DFormat)
}
else if (text == "4K") {
self!.selectedPreset = .hevc3840x2160
self!.videoWidth = 3840
self!.videoHeight = 2160
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
else if (text == "1080p"){
self!.selectedPreset = .hevc1920x1080
self!.videoWidth = 1920
self!.videoHeight = 1080
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
}
}
}
alertVC.presentController(vc: self)
}
//
func showBitRateAlert() {
let alertVC = CustomSheetController()
let dataSource = [
["imgName":"vip_Diamond","text":NSLocalizedString("最佳", comment: "")],
["imgName":"vip_Diamond","text":NSLocalizedString("", comment: "")],
["imgName":"vip_Diamond","text":NSLocalizedString("", comment: "")],
["text":NSLocalizedString("", comment: "")]
]
alertVC.setData(data: dataSource) {[weak self] text in
if (text == NSLocalizedString("", comment: "")) {
self!.selectedBitsPerPixel = .low
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
else {
if !UserInfo.sharedInstance.isMemberShip {//vip
//
let vc:MembershipVC = MembershipVC()
let nav = UINavigationController(rootViewController: vc)
nav.modalTransitionStyle = UIModalTransitionStyle.coverVertical
nav.modalPresentationStyle = .fullScreen
self?.present(nav, animated: true)
}
else {
if (text == NSLocalizedString("最佳", comment: "")) {
self!.selectedBitsPerPixel = .best
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
else if (text == NSLocalizedString("", comment: "")) {
self!.selectedBitsPerPixel = .high
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
else if (text == NSLocalizedString("", comment: "")) {
self!.selectedBitsPerPixel = .medium
self!.according3DFormatShowList(format: self!.selected3DFormat)
}
}
}
}
alertVC.presentController(vc: self)
}
} }

View File

@ -123,12 +123,13 @@ class CCSpatialPlayView: UIView,UITableViewDelegate,UITableViewDataSource{
cell.mVIPImgView?.frame = .zero cell.mVIPImgView?.frame = .zero
} }
else { else {
cell.mVIPImgView?.frame = CGRect(x: 0, y: 0, width: 30, height: 30) let wh:CGFloat = 26.0
cell.mVIPImgView?.frame = CGRect(x: 0, y: 0, width: wh, height: wh)
cell.mVIPImgView?.centerY = CCSpatialPlayCell1H * 0.5 cell.mVIPImgView?.centerY = CCSpatialPlayCell1H * 0.5
cell.mVIPImgView?.left = 16 cell.mVIPImgView?.left = 16
cell.mLabel1!.centerY = CCSpatialPlayCell1H * 0.5 cell.mLabel1!.centerY = CCSpatialPlayCell1H * 0.5
cell.mLabel1!.left = 16 + 30 + 5 cell.mLabel1!.left = 16 + wh + 8
} }
} }
return cell return cell
@ -179,7 +180,7 @@ class CCSpatialPlayCell1: UITableViewCell {
mVIPImgView = UIImageView() mVIPImgView = UIImageView()
self.contentView.addSubview(mVIPImgView!) self.contentView.addSubview(mVIPImgView!)
mVIPImgView?.frame = .zero mVIPImgView?.frame = .zero
mVIPImgView?.image = UIImage(named: "logo") mVIPImgView?.image = UIImage(named: "vip_Diamond")
mLabel1 = UILabel() mLabel1 = UILabel()
mLabel1!.bounds = CGRect(x: 0, y: 0, width: 100, height: 0) mLabel1!.bounds = CGRect(x: 0, y: 0, width: 100, height: 0)

View File

@ -0,0 +1,74 @@
//
// CustomSheetCell.swift
// SwiftProject
//
// Created by aaa on 2024/4/3.
//
import Foundation
import UIKit
class CustomSheetCell: UITableViewCell {
lazy var rightImgView:UIImageView? = {
let imgView = UIImageView()
return imgView
}()
lazy var leftLabel:UILabel? = {
let label = UILabel()
label.textColor = .white
label.font = UIFont.systemFont(ofSize: 16)
label.textAlignment = .center
return label
}()
let wh:CGFloat = 25
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.backgroundColor = .clear
self.contentView.addSubview(rightImgView!)
self.contentView.addSubview(leftLabel!)
rightImgView?.snp.makeConstraints({ make in
make.width.equalTo(wh)
make.height.equalTo(wh)
make.centerY.equalToSuperview()
})
leftLabel?.snp.makeConstraints({ make in
make.top.bottom.equalTo(0)
make.left.equalTo(rightImgView!.snp.right).offset(8)
make.centerX.equalToSuperview()
make.width.equalTo(60)
})
self.contentView.backgroundColor = UIColor(r: 20, g: 20, b: 20, a: 1)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setCData(_ data:[String:String]) {
rightImgView?.image = nil
leftLabel?.text = nil
if !UserInfo.sharedInstance.isMemberShip {
let imgName = data["imgName"]
if let im = imgName {
rightImgView?.image = UIImage(named: im)
rightImgView?.isHidden = false
}
else {
rightImgView?.isHidden = true
}
}
let text = data["text"]
leftLabel?.text = text
}
}

View File

@ -0,0 +1,165 @@
//
// CustomSheetController.swift
// SwiftProject
//
// Created by aaa on 2024/4/3.
//
import Foundation
import UIKit
typealias CustomSheetControllerSelectCallback = (String?)->Void
class CustomSheetController: UIViewController,UITableViewDataSource,UITableViewDelegate {
lazy var tableView:UITableView? = {
let table = UITableView(frame: .zero, style: .insetGrouped)
table.delegate = self
table.dataSource = self
table.isScrollEnabled = false
table.backgroundColor = .clear
table.register(CustomSheetCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)
return table
}()
var dataSource:[[String:String]] = []
let kCellIdentifier = "kkCustomSheetCell"
var selectCallback:CustomSheetControllerSelectCallback?
var selectText = ""
deinit {
print("custom sheet controller.....deinit")
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor(r: 20, g: 20, b: 20, a: 0.2)
let fview = UIView()
fview.backgroundColor = .clear
self.view.addSubview(fview)
fview.snp.makeConstraints { make in
make.left.top.right.bottom.equalToSuperview()
}
let tap = UITapGestureRecognizer(target: self, action: #selector(tapGuester(sender: )))
fview.addGestureRecognizer(tap)
self.view.addSubview(tableView!)
tableView?.snp.makeConstraints({ make in
make.left.right.equalToSuperview()
// make.height.equalTo(0)
make.height.equalTo(self.getHeight())
make.bottom.equalToSuperview().offset(self.getHeight())
})
self.view.layoutIfNeeded()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UIView.animate(withDuration: 0.25) {[weak self] in
self?.tableView?.snp.updateConstraints({ make in
make.bottom.equalToSuperview().offset(0)
})
self?.view.layoutIfNeeded()
} completion: { finish in
}
tableView?.reloadData()
}
func setData(data:[[String:String]],callback:CustomSheetControllerSelectCallback?) {
dataSource.removeAll()
dataSource.append(contentsOf: data)
selectCallback = callback
}
func getHeight() -> CGFloat {
var height:CGFloat = 0.0
height = CGFloat(dataSource.count) * 56
height = height + 56 + 10 + 70
return height
}
func presentController(vc:UIViewController) {
vc.modalPresentationStyle = UIModalPresentationStyle.popover
// vc.modalTransitionStyle = UIModalTransitionStyle.coverVertical
vc.present(self, animated: false)
}
@objc func tapGuester(sender:UITapGestureRecognizer){
self.dismissVC()
}
func dismissVC() {
UIView.animate(withDuration: 0.25) {[weak self] in
if let weakSelf = self {
weakSelf.view.backgroundColor = UIColor(r: 20, g: 20, b: 20, a: 0)
if let tb = weakSelf.tableView {
tb.snp.updateConstraints{ make in
make.bottom.equalToSuperview().offset(tb.bounds.height)
}
}
}
self?.view.layoutIfNeeded()
} completion: {[weak self] result in
self?.dismiss(animated: false)
if let sc = self?.selectCallback {
sc(self?.selectText)
}
}
}
//MARK: - UITableViewDataSource,UITableViewDelegate
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return dataSource.count
}
return 1
}
func numberOfSections(in tableView: UITableView) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: kCellIdentifier, for: indexPath) as! CustomSheetCell
if indexPath.section == 0 {
let data = dataSource[indexPath.row]
cell.setCData(data)
}
else {
cell.setCData(["text":NSLocalizedString("取消", comment: "")])
}
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section == 0 {//
let data = dataSource[indexPath.row]
selectText = data["text"] ?? ""
}
self.dismissVC()
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 8.0
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.1
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
return UIView()
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 56
}
}

View File

@ -90,6 +90,6 @@
"Free Trail 3 Days" = "Free Trail 3 Days"; "Free Trail 3 Days" = "Free Trail 3 Days";
"subscribDesc" = "免费试用3天,试用结束后,按照图示费用进行续费,您可以随时在Tunes Store中取消订阅.若已订阅过或已付费成功却未显示,可使用相同AppleID恢复会员.确认购买后将从iTunes账户扣款,自动续订会在到期前24小时内扣款,可前往AppleID管理页面关闭订阅."; "subscribDesc" = "免费试用3天,试用结束后,按照图示费用进行续费,您可以随时在Tunes Store中取消订阅.若已订阅过或已付费成功却未显示,可使用相同AppleID恢复会员.确认购买后将从iTunes账户扣款,自动续订会在到期前24小时内扣款,可前往AppleID管理页面关闭订阅.";
"用户协议" = "用户协议"; "用户协议" = "用户协议";
"userSiteUrl" = "https://www.wolai.com/9BZr3sEbpbXJEUorHEyAoP"; "userSiteUrl" = "https://cyan-camel-1d1v3n.mysxl.cn/";
"Membership activated" = "Membership activated"; "Membership activated" = "Membership activated";
"restorevip" = "恢复购买"; "restorevip" = "恢复购买";