完成用户订阅UI布局

This commit is contained in:
bluesea 2024-04-01 15:58:58 +08:00
parent 4a0a4d975d
commit a1084a84ad
11 changed files with 623 additions and 8 deletions

View File

@ -9,6 +9,11 @@
/* Begin PBXBuildFile section */
003624662BA3F0AB0080D014 /* ZZHImageExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 003624652BA3F0AB0080D014 /* ZZHImageExtension.swift */; };
005580782B9F1525004B9567 /* ZZHHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 005580772B9F1525004B9567 /* ZZHHelper.swift */; };
006B61C72BBA499D003FCB49 /* SKUPay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61C62BBA499D003FCB49 /* SKUPay.swift */; };
006B61CA2BBA4B0D003FCB49 /* MembershipVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61C92BBA4B0D003FCB49 /* MembershipVC.swift */; };
006B61CD2BBA4E3D003FCB49 /* UserInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61CC2BBA4E3D003FCB49 /* UserInfo.swift */; };
006B61CF2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61CE2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift */; };
006B61D12BBA5DB4003FCB49 /* MembershipProductView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 006B61D02BBA5DB4003FCB49 /* MembershipProductView.swift */; };
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 009661F72BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift */; };
009661FA2BAD876200FCA65F /* PhotosUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661F92BAD876200FCA65F /* PhotosUI.framework */; };
009661FC2BADB20D00FCA65F /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 009661FB2BADB20D00FCA65F /* CoreMotion.framework */; };
@ -103,6 +108,11 @@
/* Begin PBXFileReference section */
003624652BA3F0AB0080D014 /* ZZHImageExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHImageExtension.swift; sourceTree = "<group>"; };
005580772B9F1525004B9567 /* ZZHHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZZHHelper.swift; sourceTree = "<group>"; };
006B61C62BBA499D003FCB49 /* SKUPay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SKUPay.swift; sourceTree = "<group>"; };
006B61C92BBA4B0D003FCB49 /* MembershipVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MembershipVC.swift; sourceTree = "<group>"; };
006B61CC2BBA4E3D003FCB49 /* UserInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserInfo.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>"; };
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; };
009661FB2BADB20D00FCA65F /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
@ -217,6 +227,32 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
006B61C52BBA4974003FCB49 /* SKUPay */ = {
isa = PBXGroup;
children = (
006B61C62BBA499D003FCB49 /* SKUPay.swift */,
);
path = SKUPay;
sourceTree = "<group>";
};
006B61C82BBA4AF2003FCB49 /* MembershipVC */ = {
isa = PBXGroup;
children = (
006B61C92BBA4B0D003FCB49 /* MembershipVC.swift */,
006B61CE2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift */,
006B61D02BBA5DB4003FCB49 /* MembershipProductView.swift */,
);
path = MembershipVC;
sourceTree = "<group>";
};
006B61CB2BBA4E30003FCB49 /* UserInfo */ = {
isa = PBXGroup;
children = (
006B61CC2BBA4E3D003FCB49 /* UserInfo.swift */,
);
path = UserInfo;
sourceTree = "<group>";
};
0096624B2BB3BA0100FCA65F /* ExternalScreen */ = {
isa = PBXGroup;
children = (
@ -402,6 +438,8 @@
AF2120A12B4E83AF00400B7F /* CCKit */ = {
isa = PBXGroup;
children = (
006B61CB2BBA4E30003FCB49 /* UserInfo */,
006B61C52BBA4974003FCB49 /* SKUPay */,
1EFB8C6A2B88D4FF00C72119 /* Config */,
AF2120BA2B4E95AF00400B7F /* Add */,
AF2120A22B4E83AF00400B7F /* Kit */,
@ -476,6 +514,7 @@
AF2120A72B4E83B000400B7F /* Controller */ = {
isa = PBXGroup;
children = (
006B61C82BBA4AF2003FCB49 /* MembershipVC */,
1EEF683C2B8D076B00B953F7 /* VRPreview */,
1E39459C2B83837900D0F5CA /* RecordingVideo */,
00B946222B67B26D00DA668F /* ddd_video.mp4 */,
@ -700,6 +739,7 @@
AF21210B2B4EA7FE00400B7F /* CCRequest.swift in Sources */,
AF2120D82B4E9AC500400B7F /* CCAddImageView.swift in Sources */,
00D33BF42B998BF700604A44 /* SpatialImageConvertor.swift in Sources */,
006B61CA2BBA4B0D003FCB49 /* MembershipVC.swift in Sources */,
AF2120B32B4E94BE00400B7F /* CCDefine.swift in Sources */,
1EEF683E2B8D079600B953F7 /* CCVRPreviewController.swift in Sources */,
04E1D3F12B68EDFE00743F2F /* CCWebController.swift in Sources */,
@ -731,6 +771,7 @@
00D33BFA2B9AB21A00604A44 /* ZZHAVExtension.swift in Sources */,
009661F82BAD6C7100FCA65F /* CCSpaceAlbumFilterPopView2.swift in Sources */,
AF2120E02B4E9C8000400B7F /* Timer+Add.swift in Sources */,
006B61C72BBA499D003FCB49 /* SKUPay.swift in Sources */,
AF2120DE2B4E9C3500400B7F /* AppDelegate+Add.swift in Sources */,
1EFB8C6E2B88D9D800C72119 /* CCBottomMenuPopView.swift in Sources */,
003624662BA3F0AB0080D014 /* ZZHImageExtension.swift in Sources */,
@ -745,15 +786,18 @@
009662442BB2B93C00FCA65F /* SceneDelegate.swift in Sources */,
AF2120AB2B4E848400400B7F /* RootNavigationController.swift in Sources */,
AF2120C92B4E95DA00400B7F /* UIDevice+Add.swift in Sources */,
006B61CD2BBA4E3D003FCB49 /* UserInfo.swift in Sources */,
AF2120AF2B4E930400400B7F /* RootManager.swift in Sources */,
1E02C9322B8990C600DD3143 /* CCDeviceOperationListView.swift in Sources */,
AF2120DA2B4E9BD400400B7F /* CCAlert.swift in Sources */,
006B61D12BBA5DB4003FCB49 /* MembershipProductView.swift in Sources */,
0096625A2BB552E700FCA65F /* CCSpatialVideoDisplayForVideoTask.swift in Sources */,
1EFB8C702B88DA4800C72119 /* CCBottomMenuCell.swift in Sources */,
AF2120FA2B4EA5BD00400B7F /* CCHomeController.swift in Sources */,
00ED6B342BA04AC200915BDE /* PlayByTransferConvertor.swift in Sources */,
AF2121072B4EA63000400B7F /* CCHomeData.swift in Sources */,
AF2120FE2B4EA5F100400B7F /* CCLoginController.swift in Sources */,
006B61CF2BBA5D0A003FCB49 /* MembershipVCConfigureView.swift in Sources */,
AF2120CE2B4E979500400B7F /* CCTextField.swift in Sources */,
1E1EA2882B9325D300A5D5D2 /* CCSpatialPhotoDisplayController.swift in Sources */,
);

View File

@ -14,8 +14,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "502"
endingLineNumber = "502"
startingLineNumber = "514"
endingLineNumber = "514"
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
landmarkType = "7">
</BreakpointContent>
@ -30,8 +30,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "494"
endingLineNumber = "494"
startingLineNumber = "506"
endingLineNumber = "506"
landmarkName = "CCHomeController"
landmarkType = "21">
</BreakpointContent>
@ -94,8 +94,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "458"
endingLineNumber = "458"
startingLineNumber = "470"
endingLineNumber = "470"
landmarkName = "gotoVideoTransformVC(url:asset:)"
landmarkType = "7">
</BreakpointContent>
@ -615,6 +615,38 @@
endingLineNumber = "442"
landmarkName = "navgationButtonClick2(sender:)"
landmarkType = "7">
<Locations>
<Location
uuid = "AC3AF843-C4D6-4749-834A-B1DCA686B7CC - 151cde592e5f7ae5"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (Swift.Int) -&gt; () in SwiftProject.CCSpatialVideoDisplayController.navgationButtonClick2(sender: __C.UIButton) -&gt; ()"
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 = "437"
endingLineNumber = "437"
offsetFromSymbolStart = "608">
</Location>
<Location
uuid = "AC3AF843-C4D6-4749-834A-B1DCA686B7CC - 151cde592e5f7b80"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "closure #1 (Swift.Int) -&gt; () in SwiftProject.CCSpatialVideoDisplayController.navgationButtonClick2(sender: __C.UIButton) -&gt; ()"
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 = "442"
endingLineNumber = "442"
offsetFromSymbolStart = "608">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>

View File

@ -0,0 +1,11 @@
//
// SKUPay.swift
// SwiftProject
//
// Created by aaa on 2024/4/1.
//
import Foundation
class SKUPay {
}

View File

@ -0,0 +1,17 @@
//
// UserInfo.swift
// SwiftProject
//
// Created by aaa on 2024/4/1.
//
import Foundation
class UserInfo: NSObject {
static let sharedInstance = UserInfo()
var isMemberShip:Bool {
get {
return false
}
}
}

View File

@ -287,6 +287,7 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
mBottomBtn3?.setBackgroundImage(UIImage.init(named: NSLocalizedString("home_card_2", comment: "")), for: UIControl.State.normal)
}
//MARK: -
@objc public func navgationButtonClick2(sender:UIButton){
print("nihao")
@ -297,8 +298,19 @@ class CCHomeController: BaseController, LLCycleScrollViewDelegate,MFMailComposeV
}
if sender.tag == 20 {
let vc:CCSpatialShootController = CCSpatialShootController()
self.navigationController?.pushViewController(vc, animated: true)
if UserInfo.sharedInstance.isMemberShip {
let vc:CCSpatialShootController = CCSpatialShootController()
self.navigationController?.pushViewController(vc, animated: true)
}
else {
let vc:MembershipVC = MembershipVC()
let nav = UINavigationController(rootViewController: vc)
// self.navigationController?.pushViewController(vc, animated: true)
nav.modalTransitionStyle = UIModalTransitionStyle.coverVertical
nav.modalPresentationStyle = .fullScreen
self.present(nav, animated: true)
}
}else if sender.tag == 21{
//
// gotoSpatialPlayVC()

View File

@ -0,0 +1,183 @@
//
// MembershipProductView.swift
// SwiftProject
//
// Created by aaa on 2024/4/1.
//
import Foundation
import UIKit
//
//MARK: - MemberShipModelItem
class MemberShipModelItem: NSObject {
var title:String?
var desc:String?
var rightDesc:String?
var isSelected:Bool = false
}
//MARK: - MembershipProductView
typealias MembershipProductViewCallback = (_ item:MemberShipModelItem?)->()
class MembershipProductView: UIView ,UITableViewDataSource,UITableViewDelegate{
var tableView:UITableView?
var dataSource:[MemberShipModelItem] = []
var selectedItem:MemberShipModelItem?
let kMembershipViewCell_identifier = "kMembershipViewCell_identifier"
var selectCallback:MembershipProductViewCallback?
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
tableView = UITableView.init(frame: .zero, style: .plain)
self.addSubview(tableView!)
tableView?.snp.makeConstraints({ make in
make.left.top.right.bottom.equalToSuperview()
})
tableView?.delegate = self
tableView?.dataSource = self
tableView?.register(MembershipViewCell.classForCoder(), forCellReuseIdentifier: kMembershipViewCell_identifier)
tableView?.separatorStyle = .none
tableView?.isScrollEnabled = false
tableView?.showsHorizontalScrollIndicator = false
}
func setData(_ dataArr:[MemberShipModelItem]?,selectedItem:MemberShipModelItem?) {
dataSource.removeAll()
guard let ad = dataArr else {
return
}
dataSource.append(contentsOf: ad)
self.selectedItem = selectedItem
tableView?.reloadData()
}
//MARK: - UITableViewDataSource,UITableViewDelegate
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.dataSource.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:MembershipViewCell = tableView.dequeueReusableCell(withIdentifier: kMembershipViewCell_identifier, for: indexPath) as! MembershipViewCell
let item = self.dataSource[indexPath.row]
cell.setItemData(item)
cell.selectionStyle = .none
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let item = self.dataSource[indexPath.row]
if let si = selectedItem {
si.isSelected = false
}
item.isSelected = true
selectedItem = item
tableView.reloadData()
guard let callback = self.selectCallback else {
return
}
callback(item)
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 66
}
}
//MARK: - MembershipViewCell
class MembershipViewCell: UITableViewCell {
var item:MemberShipModelItem?
var bgView:UIView?
var rightDescBtn:UIButton?
var leftTitleLabel:UILabel?
var leftDescLabel:UILabel?
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
bgView = UIView()
self.contentView.addSubview(bgView!)
bgView?.layer.cornerRadius = 10
bgView?.layer.masksToBounds = true
bgView?.layer.borderWidth = 2
bgView?.snp.makeConstraints { make in
make.left.equalToSuperview().offset(4)
make.top.equalToSuperview().offset(2)
make.bottom.equalToSuperview().offset(-2)
make.right.equalToSuperview().offset(-4)
}
leftTitleLabel = UILabel()
bgView?.addSubview(leftTitleLabel!)
leftTitleLabel?.textColor = .black
leftTitleLabel?.font = UIFont.systemFont(ofSize: 16)
leftTitleLabel?.snp.makeConstraints { make in
make.left.equalToSuperview().offset(6)
make.top.equalToSuperview().offset(6)
}
leftDescLabel = UILabel()
bgView?.addSubview(leftDescLabel!)
leftDescLabel?.textColor = .gray
leftDescLabel?.font = UIFont.systemFont(ofSize: 12)
leftDescLabel?.snp.makeConstraints {[weak self] make in
make.left.equalToSuperview().offset(6)
make.top.equalTo(self!.leftTitleLabel!.snp.bottom).offset(6)
}
rightDescBtn = UIButton()
rightDescBtn?.isUserInteractionEnabled = false
self.contentView.addSubview(rightDescBtn!)
rightDescBtn?.setBackgroundImage(UIImage(named: "BG_Top"), for: .normal)
rightDescBtn?.titleLabel?.font = UIFont.systemFont(ofSize: 12)
rightDescBtn?.setTitleColor(.white, for: .normal)
rightDescBtn?.snp.makeConstraints { make in
make.right.equalToSuperview().offset(0)
make.top.equalToSuperview().offset(0)
make.height.equalTo(30)
make.width.equalTo(120)
}
}
func setItemData(_ item:MemberShipModelItem?) {
self.item = item
self.item?.addObserver(self, forKeyPath: "isSelected", context: nil)
rightDescBtn?.setTitle(item?.rightDesc, for: .normal)
leftTitleLabel?.text = item?.title
leftDescLabel?.text = item?.desc
updateCellUI()
}
func updateCellUI(){
guard let it = item else {
return
}
if it.isSelected == true{
bgView?.backgroundColor = .gray
bgView?.layer.borderColor = UIColor.black.cgColor
}
else{
bgView?.backgroundColor = .lightGray
bgView?.layer.borderColor = UIColor.gray.cgColor
}
}
deinit {
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

View File

@ -0,0 +1,31 @@
//
// MembershipVC.swift
// SwiftProject
//
// Created by aaa on 2024/4/1.
//
import Foundation
import UIKit
class MembershipVC: BaseController {
var pvView:MembershipProductView?
var selectedItem:MemberShipModelItem?
override func viewDidLoad() {
super.viewDidLoad()
self.configureUI()
self.configureData()
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
}
deinit {
print("MembershipVC...deinit")
}
}

View File

@ -0,0 +1,262 @@
//
// MembershipVCConfigureView.swift
// SwiftProject
//
// Created by aaa on 2024/4/1.
//
import Foundation
import UIKit
extension MembershipVC {
func configureUI() {
self.navLine?.isHidden = true
self.setLeftOneBtnImg(imgStr: "Icon_Close_Top")
self.leftBtn1?.addTarget(self, action: #selector(dismissVC(sender: )), for: .touchUpInside)
self.setRightOneBtnImg(imgStr: "Icon_PopUp_Icon_Folder")
self.rightBtn1?.addTarget(self, action: #selector(buyMembership(sender: )), for: .touchUpInside)
let topView = self.topView()
self.view.addSubview(topView)
topView.snp.makeConstraints { make in
make.left.right.equalTo(0)
make.top.equalToSuperview().offset(120)
make.height.equalTo(150)
}
let centerView = self.centerView()
self.view.addSubview(centerView)
centerView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.top.equalTo(topView.snp.bottom).offset(20)
make.height.equalTo(210)
}
let bottomView = self.bottomView()
self.view .addSubview(bottomView)
bottomView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.top.equalTo(centerView.snp.bottom).offset(20)
make.bottom.equalToSuperview()
}
}
@objc func dismissVC(sender:UIButton) {
self.dismiss(animated: true)
}
//MARK: -
@objc func buyMembership(sender:UIButton) {
}
func topView() -> UIView {
let bgView = UIView()
bgView.backgroundColor = .white
let imgView_1 = UIImageView(image: UIImage(named: "logo"))
bgView.addSubview(imgView_1)
imgView_1.snp.makeConstraints { make in
make.height.width.equalTo(30)
}
let titleLabel = UILabel()
bgView.addSubview(titleLabel)
titleLabel.text = NSLocalizedString("VPcamera", comment: "")
titleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalToSuperview().offset(8)
make.centerY.equalTo(imgView_1.snp.centerY)
make.left.equalTo(imgView_1.snp.right).offset(4)
}
let imgView_2 = UIImageView(image: UIImage(named: "logo"))
bgView.addSubview(imgView_2)
imgView_2.snp.makeConstraints { make in
make.centerY.equalTo(titleLabel.snp.centerY)
make.height.width.equalTo(30)
make.left.equalTo(titleLabel.snp.right).offset(4)
}
let siView_1 = shipItemView("logo", NSLocalizedString("membershipdesc_1", comment: ""))
bgView.addSubview(siView_1)
let siView_2 = shipItemView("logo", NSLocalizedString("membershipdesc_2", comment: ""))
bgView.addSubview(siView_2)
let siView_3 = shipItemView("logo", NSLocalizedString("membershipdesc_3", comment: ""))
bgView.addSubview(siView_3)
let siView_4 = shipItemView("logo", NSLocalizedString("membershipdesc_4", comment: ""))
bgView.addSubview(siView_4)
siView_1.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(titleLabel.snp.bottom).offset(20)
}
siView_2.snp.makeConstraints { make in
make.left.equalTo(siView_1.snp.left)
make.top.equalTo(siView_1.snp.bottom).offset(4)
}
siView_3.snp.makeConstraints { make in
make.left.equalTo(siView_2.snp.left)
make.top.equalTo(siView_2.snp.bottom).offset(4)
}
siView_4.snp.makeConstraints { make in
make.left.equalTo(siView_3.snp.left)
make.top.equalTo(siView_3.snp.bottom).offset(4)
}
return bgView
}
func shipItemView(_ imageName:String,_ desc:String) -> UIView {
let bgView = UIView()
let imgView = UIImageView()
imgView.image = UIImage(named: imageName)
bgView.addSubview(imgView)
let descLabel = UILabel()
descLabel.text = desc
bgView.addSubview(descLabel)
imgView.snp.makeConstraints { make in
make.height.width.equalTo(20)
make.left.equalToSuperview()
make.top.bottom.equalToSuperview()
}
descLabel.snp.makeConstraints { make in
make.right.equalToSuperview()
make.top.bottom.equalToSuperview()
make.left.equalTo(imgView.snp.right).offset(3)
}
return bgView
}
func centerView() -> UIView {
let bgView = UIView()
bgView.backgroundColor = .white
pvView = MembershipProductView(frame: .zero)
bgView.addSubview(pvView!)
pvView?.snp.makeConstraints { make in
make.left.right.top.bottom.equalToSuperview()
}
pvView?.selectCallback = {[weak self] item in
print("选择....\(item)")
self?.selectedItem = item
}
return bgView
}
//
func configureData(){
var arr:[MemberShipModelItem] = []
for i in 0 ..< 3 {
let item = MemberShipModelItem()
item.title = "$9.9/周"
item.desc = "低至$0.14/天"
item.rightDesc = "90%人选择"
item.isSelected = false
arr.append(item)
}
let item = arr[1]
item.isSelected = true
selectedItem = item
pvView?.setData(arr,selectedItem:selectedItem)
}
func bottomView()->UIView {
let bgView = UIView()
bgView.backgroundColor = .white
let btn_privateBtn = UIButton()
bgView.addSubview(btn_privateBtn)
btn_privateBtn.addTarget(self, action: #selector(goWeb(sender: )), for: .touchUpInside)
btn_privateBtn.setTitle(NSLocalizedString("隐私政策", comment: ""), for: .normal)
btn_privateBtn.titleLabel?.font = UIFont.systemFont(ofSize: 12)
btn_privateBtn.setTitleColor(.gray, for: .normal)
btn_privateBtn.tag = 1
btn_privateBtn.snp.makeConstraints { make in
make.top.equalToSuperview()
}
let line = UIView()
bgView.addSubview(line)
line.backgroundColor = .gray
line.snp.makeConstraints { make in
make.width.equalTo(1)
make.height.equalTo(10)
make.centerX.equalToSuperview()
make.centerY.equalTo(btn_privateBtn.snp.centerY)
make.left.equalTo(btn_privateBtn.snp.right).offset(30)
}
let btn_userBtn = UIButton()
bgView.addSubview(btn_userBtn)
btn_userBtn.addTarget(self, action: #selector(goWeb(sender: )), for: .touchUpInside)
btn_userBtn.setTitle(NSLocalizedString("用户协议", comment: ""), for: .normal)
btn_userBtn.titleLabel?.font = UIFont.systemFont(ofSize: 12)
btn_userBtn.setTitleColor(.gray, for: .normal)
btn_userBtn.tag = 2
btn_userBtn.snp.makeConstraints { make in
make.top.equalToSuperview()
make.left.equalTo(line.snp.right).offset(30)
}
let subscribeBtn = UIButton()
bgView.addSubview(subscribeBtn)
subscribeBtn.addTarget(self, action: #selector(subscribeAction(sender: )), for: .touchUpInside)
subscribeBtn.titleLabel?.font = UIFont.boldSystemFont(ofSize: 16)
subscribeBtn.setTitleColor(.white, for: .normal)
subscribeBtn.setTitle(NSLocalizedString("Free Trail 3 Days", comment: ""), for: .normal)
subscribeBtn.backgroundColor = .darkText
subscribeBtn.layer.masksToBounds = true
subscribeBtn.layer.cornerRadius = 16
subscribeBtn.snp.makeConstraints { make in
make.top.equalTo(btn_privateBtn.snp.bottom).offset(20)
make.centerX.equalToSuperview()
make.height.equalTo(60)
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
}
let descLabel = UILabel()
bgView.addSubview(descLabel)
descLabel.numberOfLines = 0
descLabel.font = UIFont.systemFont(ofSize: 12)
descLabel.textColor = .lightGray
descLabel.text = NSLocalizedString("subscribDesc", comment: "")
descLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.right.equalToSuperview().offset(-20)
make.top.equalTo(subscribeBtn.snp.bottom).offset(20)
}
return bgView
}
//MARK: - web
@objc func goWeb(sender:UIButton) {
if sender.tag == 1 {//
let vc:CCWebController = CCWebController()
let sizeUrl = NSLocalizedString("siteUrl", comment: "隐私政策url")
vc.urlString = sizeUrl
self.navigationController?.pushViewController(vc, animated: true)
}
else if sender.tag == 2{//
let vc:CCWebController = CCWebController()
let sizeUrl = NSLocalizedString("userSiteUrl", comment: "用户协议url")
vc.urlString = sizeUrl
self.navigationController?.pushViewController(vc, animated: true)
}
}
//MARK: -
@objc func subscribeAction(sender:UIButton) {
}
}

View File

@ -77,3 +77,15 @@
"开始串流" = "Start Streaming";
"空间图片保存失败" = "Spatial Photo Save Failed";
"空间视频保存失败" = "Spatial Video Save Failed";
"VPcamera" = "VPcamera";
"membershipdesc_1" = "Preview larger spatial videos";
"membershipdesc_2" = "Capture spatial photo";
"membershipdesc_3" = "Export Higher Quality";
"membershipdesc_4" = "No Ads";
"Free Trail 3 Days" = "Free Trail 3 Days";
"subscribDesc" = "免费试用3天,试用结束后,按照图示费用进行续费,您可以随时在Tunes Store中取消订阅.若已订阅过或已付费成功却未显示,可使用相同AppleID恢复会员.确认购买后将从iTunes账户扣款,自动续订会在到期前24小时内扣款,可前往AppleID管理页面关闭订阅.";
"用户协议" = "用户协议";
"userSiteUrl" = "https://www.wolai.com/9BZr3sEbpbXJEUorHEyAoP";

View File

@ -80,3 +80,14 @@
"空间图片保存失败" = "";
"空间视频保存失败" = "";
"VPcamera" = "VPcamera";
"membershipdesc_1" = "Preview larger spatial videos";
"membershipdesc_2" = "Capture spatial photo";
"membershipdesc_3" = "Export Higher Quality";
"membershipdesc_4" = "No Ads";
"Free Trail 3 Days" = "Free Trail 3 Days";
"subscribDesc" = "免费试用3天,试用结束后,按照图示费用进行续费,您可以随时在Tunes Store中取消订阅.若已订阅过或已付费成功却未显示,可使用相同AppleID恢复会员.确认购买后将从iTunes账户扣款,自动续订会在到期前24小时内扣款,可前往AppleID管理页面关闭订阅.";
"用户协议" = "用户协议";
"userSiteUrl" = "https://www.wolai.com/9BZr3sEbpbXJEUorHEyAoP";