语音通话

This commit is contained in:
PengGJ 2025-03-31 17:50:56 +08:00
parent 3518f2f3ca
commit 632323b98e
77 changed files with 2651 additions and 74 deletions

View File

@ -39,6 +39,16 @@
CA0351E62D96726D002D3F98 /* HuiYuanZXQYCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0351E52D96726D002D3F98 /* HuiYuanZXQYCollectionViewCell.m */; };
CA0351E92D9675D2002D3F98 /* HuiYuanZXGoodsView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0351E82D9675D2002D3F98 /* HuiYuanZXGoodsView.m */; };
CA0351EC2D96778F002D3F98 /* HuiYuanZXGoodsCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0351EB2D96778F002D3F98 /* HuiYuanZXGoodsCollectionViewCell.m */; };
CA1EAD992D9A267E0008907A /* MoNiZhuanZhangView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EAD982D9A267E0008907A /* MoNiZhuanZhangView.m */; };
CA1EAD9D2D9A2B7D0008907A /* MoNiYuEViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EAD9C2D9A2B7D0008907A /* MoNiYuEViewController.m */; };
CA1EADA12D9A2C190008907A /* MoNiYuEView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADA02D9A2C190008907A /* MoNiYuEView.m */; };
CA1EADA52D9A2CE60008907A /* MoNiYuECollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADA42D9A2CE60008907A /* MoNiYuECollectionViewCell.m */; };
CA1EADA92D9A3DED0008907A /* ShiPinDianHuaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADA82D9A3DED0008907A /* ShiPinDianHuaViewController.m */; };
CA1EADAD2D9A3E8B0008907A /* ShiPinDianHuaView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADAC2D9A3E8B0008907A /* ShiPinDianHuaView.m */; };
CA1EADB02D9A65C70008907A /* ShiPinDianHuaShowView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADAF2D9A65C70008907A /* ShiPinDianHuaShowView.m */; };
CA1EADB42D9A8DAA0008907A /* YuYinDianHuaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADB32D9A8DAA0008907A /* YuYinDianHuaViewController.m */; };
CA1EADB82D9A8E780008907A /* YuYinDianHuaView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADB72D9A8E780008907A /* YuYinDianHuaView.m */; };
CA1EADBB2D9A91080008907A /* YuYinDianHuaShowView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1EADBA2D9A91080008907A /* YuYinDianHuaShowView.m */; };
CA3CD5792D913CFA002707C1 /* TimeTools.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3CD5782D913CFA002707C1 /* TimeTools.m */; };
CA3CD57A2D913CFA002707C1 /* Tools.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3CD5762D913CFA002707C1 /* Tools.m */; };
CA3CD59F2D913D27002707C1 /* UserModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3CD5872D913D27002707C1 /* UserModel.m */; };
@ -98,6 +108,7 @@
CA589DC72D97C26400D85384 /* DuanXinShowMainHomeCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA589DC62D97C26400D85384 /* DuanXinShowMainHomeCollectionViewCell.m */; };
CA589DCB2D97C94F00D85384 /* WeiXinXXViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA589DCA2D97C94F00D85384 /* WeiXinXXViewController.m */; };
CA589DCF2D97C9A200D85384 /* WeiXinXXView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA589DCE2D97C9A200D85384 /* WeiXinXXView.m */; };
CA589DD52D97F34400D85384 /* MoNiZhuanZhangViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA589DD42D97F34400D85384 /* MoNiZhuanZhangViewController.m */; };
CAB2AB482D9242D30022C535 /* MainHomeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB2AB472D9242D30022C535 /* MainHomeViewController.m */; };
CAB2AB4B2D9242DD0022C535 /* MainMyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB2AB4A2D9242DD0022C535 /* MainMyViewController.m */; };
CAB2AB4F2D9244210022C535 /* MainHomeView.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB2AB4E2D9244210022C535 /* MainHomeView.m */; };
@ -327,6 +338,26 @@
CA0351E82D9675D2002D3F98 /* HuiYuanZXGoodsView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HuiYuanZXGoodsView.m; sourceTree = "<group>"; };
CA0351EA2D96778F002D3F98 /* HuiYuanZXGoodsCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HuiYuanZXGoodsCollectionViewCell.h; sourceTree = "<group>"; };
CA0351EB2D96778F002D3F98 /* HuiYuanZXGoodsCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HuiYuanZXGoodsCollectionViewCell.m; sourceTree = "<group>"; };
CA1EAD972D9A267E0008907A /* MoNiZhuanZhangView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoNiZhuanZhangView.h; sourceTree = "<group>"; };
CA1EAD982D9A267E0008907A /* MoNiZhuanZhangView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoNiZhuanZhangView.m; sourceTree = "<group>"; };
CA1EAD9B2D9A2B7D0008907A /* MoNiYuEViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoNiYuEViewController.h; sourceTree = "<group>"; };
CA1EAD9C2D9A2B7D0008907A /* MoNiYuEViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoNiYuEViewController.m; sourceTree = "<group>"; };
CA1EAD9F2D9A2C190008907A /* MoNiYuEView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoNiYuEView.h; sourceTree = "<group>"; };
CA1EADA02D9A2C190008907A /* MoNiYuEView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoNiYuEView.m; sourceTree = "<group>"; };
CA1EADA32D9A2CE60008907A /* MoNiYuECollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoNiYuECollectionViewCell.h; sourceTree = "<group>"; };
CA1EADA42D9A2CE60008907A /* MoNiYuECollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoNiYuECollectionViewCell.m; sourceTree = "<group>"; };
CA1EADA72D9A3DED0008907A /* ShiPinDianHuaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShiPinDianHuaViewController.h; sourceTree = "<group>"; };
CA1EADA82D9A3DED0008907A /* ShiPinDianHuaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShiPinDianHuaViewController.m; sourceTree = "<group>"; };
CA1EADAB2D9A3E8B0008907A /* ShiPinDianHuaView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShiPinDianHuaView.h; sourceTree = "<group>"; };
CA1EADAC2D9A3E8B0008907A /* ShiPinDianHuaView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShiPinDianHuaView.m; sourceTree = "<group>"; };
CA1EADAE2D9A65C70008907A /* ShiPinDianHuaShowView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShiPinDianHuaShowView.h; sourceTree = "<group>"; };
CA1EADAF2D9A65C70008907A /* ShiPinDianHuaShowView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ShiPinDianHuaShowView.m; sourceTree = "<group>"; };
CA1EADB22D9A8DAA0008907A /* YuYinDianHuaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YuYinDianHuaViewController.h; sourceTree = "<group>"; };
CA1EADB32D9A8DAA0008907A /* YuYinDianHuaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YuYinDianHuaViewController.m; sourceTree = "<group>"; };
CA1EADB62D9A8E780008907A /* YuYinDianHuaView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YuYinDianHuaView.h; sourceTree = "<group>"; };
CA1EADB72D9A8E780008907A /* YuYinDianHuaView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YuYinDianHuaView.m; sourceTree = "<group>"; };
CA1EADB92D9A91080008907A /* YuYinDianHuaShowView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YuYinDianHuaShowView.h; sourceTree = "<group>"; };
CA1EADBA2D9A91080008907A /* YuYinDianHuaShowView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YuYinDianHuaShowView.m; sourceTree = "<group>"; };
CA3CD5752D913CFA002707C1 /* Tools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tools.h; sourceTree = "<group>"; };
CA3CD5762D913CFA002707C1 /* Tools.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tools.m; sourceTree = "<group>"; };
CA3CD5772D913CFA002707C1 /* TimeTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TimeTools.h; sourceTree = "<group>"; };
@ -430,6 +461,8 @@
CA589DCA2D97C94F00D85384 /* WeiXinXXViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WeiXinXXViewController.m; sourceTree = "<group>"; };
CA589DCD2D97C9A200D85384 /* WeiXinXXView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WeiXinXXView.h; sourceTree = "<group>"; };
CA589DCE2D97C9A200D85384 /* WeiXinXXView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WeiXinXXView.m; sourceTree = "<group>"; };
CA589DD32D97F34400D85384 /* MoNiZhuanZhangViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoNiZhuanZhangViewController.h; sourceTree = "<group>"; };
CA589DD42D97F34400D85384 /* MoNiZhuanZhangViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MoNiZhuanZhangViewController.m; sourceTree = "<group>"; };
CAB2AB462D9242D30022C535 /* MainHomeViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainHomeViewController.h; sourceTree = "<group>"; };
CAB2AB472D9242D30022C535 /* MainHomeViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MainHomeViewController.m; sourceTree = "<group>"; };
CAB2AB492D9242DD0022C535 /* MainMyViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainMyViewController.h; sourceTree = "<group>"; };
@ -971,6 +1004,86 @@
path = cell;
sourceTree = "<group>";
};
CA1EAD962D9A266E0008907A /* view */ = {
isa = PBXGroup;
children = (
CA1EAD972D9A267E0008907A /* MoNiZhuanZhangView.h */,
CA1EAD982D9A267E0008907A /* MoNiZhuanZhangView.m */,
);
path = view;
sourceTree = "<group>";
};
CA1EAD9A2D9A2B680008907A /* 模拟余额 */ = {
isa = PBXGroup;
children = (
CA1EADA22D9A2CD40008907A /* cell */,
CA1EAD9E2D9A2C0C0008907A /* view */,
CA1EAD9B2D9A2B7D0008907A /* MoNiYuEViewController.h */,
CA1EAD9C2D9A2B7D0008907A /* MoNiYuEViewController.m */,
);
path = "模拟余额";
sourceTree = "<group>";
};
CA1EAD9E2D9A2C0C0008907A /* view */ = {
isa = PBXGroup;
children = (
CA1EAD9F2D9A2C190008907A /* MoNiYuEView.h */,
CA1EADA02D9A2C190008907A /* MoNiYuEView.m */,
);
path = view;
sourceTree = "<group>";
};
CA1EADA22D9A2CD40008907A /* cell */ = {
isa = PBXGroup;
children = (
CA1EADA32D9A2CE60008907A /* MoNiYuECollectionViewCell.h */,
CA1EADA42D9A2CE60008907A /* MoNiYuECollectionViewCell.m */,
);
path = cell;
sourceTree = "<group>";
};
CA1EADA62D9A3DD20008907A /* 视频电话 */ = {
isa = PBXGroup;
children = (
CA1EADAA2D9A3E730008907A /* view */,
CA1EADA72D9A3DED0008907A /* ShiPinDianHuaViewController.h */,
CA1EADA82D9A3DED0008907A /* ShiPinDianHuaViewController.m */,
);
path = "视频电话";
sourceTree = "<group>";
};
CA1EADAA2D9A3E730008907A /* view */ = {
isa = PBXGroup;
children = (
CA1EADAB2D9A3E8B0008907A /* ShiPinDianHuaView.h */,
CA1EADAC2D9A3E8B0008907A /* ShiPinDianHuaView.m */,
CA1EADAE2D9A65C70008907A /* ShiPinDianHuaShowView.h */,
CA1EADAF2D9A65C70008907A /* ShiPinDianHuaShowView.m */,
);
path = view;
sourceTree = "<group>";
};
CA1EADB12D9A8D7A0008907A /* 语音电话 */ = {
isa = PBXGroup;
children = (
CA1EADB52D9A8E690008907A /* view */,
CA1EADB22D9A8DAA0008907A /* YuYinDianHuaViewController.h */,
CA1EADB32D9A8DAA0008907A /* YuYinDianHuaViewController.m */,
);
path = "语音电话";
sourceTree = "<group>";
};
CA1EADB52D9A8E690008907A /* view */ = {
isa = PBXGroup;
children = (
CA1EADB62D9A8E780008907A /* YuYinDianHuaView.h */,
CA1EADB72D9A8E780008907A /* YuYinDianHuaView.m */,
CA1EADB92D9A91080008907A /* YuYinDianHuaShowView.h */,
CA1EADBA2D9A91080008907A /* YuYinDianHuaShowView.m */,
);
path = view;
sourceTree = "<group>";
};
CA3CD57B2D913D20002707C1 /* NetWorkManager */ = {
isa = PBXGroup;
children = (
@ -1145,9 +1258,23 @@
path = view;
sourceTree = "<group>";
};
CA589DD22D97F32900D85384 /* 模拟转账 */ = {
isa = PBXGroup;
children = (
CA1EAD962D9A266E0008907A /* view */,
CA589DD32D97F34400D85384 /* MoNiZhuanZhangViewController.h */,
CA589DD42D97F34400D85384 /* MoNiZhuanZhangViewController.m */,
);
path = "模拟转账";
sourceTree = "<group>";
};
CAB2AB442D9242B70022C535 /* 首页 */ = {
isa = PBXGroup;
children = (
CA1EADB12D9A8D7A0008907A /* 语音电话 */,
CA1EADA62D9A3DD20008907A /* 视频电话 */,
CA1EAD9A2D9A2B680008907A /* 模拟余额 */,
CA589DD22D97F32900D85384 /* 模拟转账 */,
CA589DC82D97C93B00D85384 /* 微信消息 */,
CAB2AB522D9284EF0022C535 /* 短信通知 */,
CAB2AB4C2D9244070022C535 /* view */,
@ -2295,6 +2422,7 @@
CB489F582744A0BD00DA044A /* UIDevice+PGJ.m in Sources */,
CBD422B128DAEDFC00C32440 /* UIImageView+PWebCache.m in Sources */,
CB489FB32744A0BD00DA044A /* THDatePickerView.m in Sources */,
CA1EADA12D9A2C190008907A /* MoNiYuEView.m in Sources */,
CA0351D82D965213002D3F98 /* HuiYuanZXViewController.m in Sources */,
CB489FB62744A0BD00DA044A /* NSDate+CXCategory.m in Sources */,
CB489F612744A0BD00DA044A /* ListAlterView.m in Sources */,
@ -2308,6 +2436,7 @@
CB489F6B2744A0BD00DA044A /* LJsignView.m in Sources */,
CA0351892D963254002D3F98 /* ZhangHaoBDTableViewCell.m in Sources */,
CB489F622744A0BD00DA044A /* MDBwebVIew.m in Sources */,
CA589DD52D97F34400D85384 /* MoNiZhuanZhangViewController.m in Sources */,
CB489F992744A0BD00DA044A /* UserInfoModel.m in Sources */,
CB489DCA27449D5C00DA044A /* AppDelegate.m in Sources */,
CA0351942D96440F002D3F98 /* ZhangHuGuanLiViewController.m in Sources */,
@ -2350,6 +2479,7 @@
CA3CD6102D9140D5002707C1 /* PayPublicYouHuiLogListView.m in Sources */,
CA3CD6112D9140D5002707C1 /* PayPublicView.m in Sources */,
CA3CD6122D9140D5002707C1 /* PayPublicYouHuiView.m in Sources */,
CA1EAD9D2D9A2B7D0008907A /* MoNiYuEViewController.m in Sources */,
CA3CD6132D9140D5002707C1 /* PayPublicYouHuiTableViewCell.m in Sources */,
CB489F6D2744A0BD00DA044A /* UIView+Additions.m in Sources */,
CB489FA92744A0BD00DA044A /* UIView+XLExtension.m in Sources */,
@ -2358,6 +2488,7 @@
CB489F512744A0BD00DA044A /* PGJSearchView.m in Sources */,
CB489F7A2744A0BD00DA044A /* FSTextView.m in Sources */,
CA03519C2D964841002D3F98 /* GuanYuWoMenViewController.m in Sources */,
CA1EADB02D9A65C70008907A /* ShiPinDianHuaShowView.m in Sources */,
CAB2AB592D9285A90022C535 /* DuanXinView.m in Sources */,
CB489F6F2744A0BD00DA044A /* XLAlertView.m in Sources */,
CA589DBD2D978FE900D85384 /* MNHeiPeiView.m in Sources */,
@ -2381,10 +2512,12 @@
CA3CD5BA2D913D3E002707C1 /* PayManager.m in Sources */,
CA3CD5BB2D913D3E002707C1 /* VistaInAppPurchaseManager.m in Sources */,
CB489FB42744A0BD00DA044A /* CXDatePickerView.m in Sources */,
CA1EADA92D9A3DED0008907A /* ShiPinDianHuaViewController.m in Sources */,
CB489F7B2744A0BD00DA044A /* UIImageView+VideoImageView.m in Sources */,
CB489F602744A0BD00DA044A /* GETCorelLocation.m in Sources */,
CA589DBA2D9786C000D85384 /* PickerAlterView.m in Sources */,
CB489F892744A0BD00DA044A /* TagInfoModel.m in Sources */,
CA1EADA52D9A2CE60008907A /* MoNiYuECollectionViewCell.m in Sources */,
CAE017012D94F64F004777D4 /* LoginTelView.m in Sources */,
CB489F8E2744A0BD00DA044A /* UITextFieldYS.m in Sources */,
CB489F922744A0BD00DA044A /* IndexGetNewsModel.m in Sources */,
@ -2404,6 +2537,7 @@
CAE017052D951F70004777D4 /* TTTAttributedLabel.m in Sources */,
CB489F632744A0BD00DA044A /* CountDownManager.m in Sources */,
CA589DB72D97827900D85384 /* AlterSheetView.m in Sources */,
CA1EADB42D9A8DAA0008907A /* YuYinDianHuaViewController.m in Sources */,
CB489F9A2744A0BD00DA044A /* baseInfoModel.m in Sources */,
CB489F6E2744A0BD00DA044A /* UIButton+EnlargeTouchArea.m in Sources */,
CB489F972744A0BD00DA044A /* WkWebviewViewController.m in Sources */,
@ -2417,6 +2551,7 @@
CA3CD5B42D913D33002707C1 /* PublicNetWorkManager.m in Sources */,
CA3CD5B52D913D33002707C1 /* PublicUploadImageManager.m in Sources */,
CAB2AB482D9242D30022C535 /* MainHomeViewController.m in Sources */,
CA1EADB82D9A8E780008907A /* YuYinDianHuaView.m in Sources */,
CB489F682744A0BD00DA044A /* DAYCalendarView.m in Sources */,
CAB2AB4B2D9242DD0022C535 /* MainMyViewController.m in Sources */,
CA589DCB2D97C94F00D85384 /* WeiXinXXViewController.m in Sources */,
@ -2439,10 +2574,13 @@
CA0351A32D964926002D3F98 /* PeiZhiShowView.m in Sources */,
CB489FAF2744A0BD00DA044A /* FSActionSheetConfig.m in Sources */,
CB489FB52744A0BD00DA044A /* HYTimePickerView.m in Sources */,
CA1EADAD2D9A3E8B0008907A /* ShiPinDianHuaView.m in Sources */,
CB489F722744A0BD00DA044A /* MCTabBarController.m in Sources */,
CA1EAD992D9A267E0008907A /* MoNiZhuanZhangView.m in Sources */,
CAE0171E2D95379B004777D4 /* YiJianFanKuiView.m in Sources */,
CAE0171F2D95379B004777D4 /* ImageCollectionViewCell.m in Sources */,
CAE017202D95379B004777D4 /* YiJianFanKuiController.m in Sources */,
CA1EADBB2D9A91080008907A /* YuYinDianHuaShowView.m in Sources */,
CAE0170C2D952EA2004777D4 /* MainMyUserView.m in Sources */,
CB489F732744A0BD00DA044A /* BaseViewController.m in Sources */,
CA3CD5792D913CFA002707C1 /* TimeTools.m in Sources */,
@ -2626,6 +2764,7 @@
INFOPLIST_FILE = ProductApp/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "装佯大师";
INFOPLIST_KEY_NSCameraUsageDescription = "装佯大师意见反馈和短信通知和模拟来电上传图片需要使用相机";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "相机";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "装佯大师意见反馈和短信通知和模拟来电上传图片需要使用相册";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
@ -2690,6 +2829,7 @@
INFOPLIST_FILE = ProductApp/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "装佯大师";
INFOPLIST_KEY_NSCameraUsageDescription = "装佯大师意见反馈和短信通知和模拟来电上传图片需要使用相机";
INFOPLIST_KEY_NSMicrophoneUsageDescription = "相机";
INFOPLIST_KEY_NSPhotoLibraryAddUsageDescription = "装佯大师意见反馈和短信通知和模拟来电上传图片需要使用相册";
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45744@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45744@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 44147@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 44147@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "钱包@3x@2x(1).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "钱包@3x@3x(1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "钱包@3x@2x(3).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "钱包@3x@3x(3).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "钱包@3x@2x(2).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "钱包@3x@3x(2).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "容器@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "容器@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x(1).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x(1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x(2).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x(2).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x(3).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x(3).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x(4).png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x(4).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "组 45426@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 45426@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -98,7 +98,7 @@
imagePickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];//
imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;//
imagePickerController.videoMaximumDuration = 10;//
imagePickerController.videoMaximumDuration = 600;//
imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
imagePickerController.videoQuality = UIImagePickerControllerQualityType640x480;//
@ -107,9 +107,14 @@
else
{
//
imagePickerController.videoMaximumDuration = 10.0;//
imagePickerController.mediaTypes = [NSArray arrayWithObjects:@"public.movie", nil];
imagePickerController.allowsEditing = NO;
// imagePickerController.videoMaximumDuration = 600.0;//
// imagePickerController.mediaTypes = [NSArray arrayWithObjects:@"public.movie", nil];
// imagePickerController.allowsEditing = NO;
imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
imagePickerController.allowsEditing = YES;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.mediaTypes = [NSArray arrayWithObjects:@"public.movie", nil];
imagePickerController.videoExportPreset = AVAssetExportPresetPassthrough;
}
}
@ -119,6 +124,7 @@
}
[[NSUserDefaults standardUserDefaults] setObject:@"2" forKey:@"tcjdsfxysxin"];
viewController.modalPresentationStyle = UIModalPresentationCurrentContext;
[viewController presentViewController:imagePickerController animated:YES completion:nil];
}

View File

@ -80,8 +80,8 @@
make.top.equalTo(viewxw.mas_bottom).offset(10);
make.height.offset(90);
}];
// [self drawSmallsView:viewcenter values:@[@"模拟来电",@"语音电话",@"视频电话",@"微信通知"]];
[self drawSmallsView:viewcenter values:@[@"语音电话",@"视频电话"]];
[self drawSmallsView:viewcenter values:@[@"模拟来电",@"语音电话",@"视频电话",@"微信通知"]];
// [self drawSmallsView:viewcenter values:@[@"语音电话",@"视频电话"]];
UIView *viewbottom = [[UIView alloc] init];
[viewinfo addSubview:viewbottom];
@ -90,8 +90,8 @@
make.top.equalTo(viewcenter.mas_bottom).offset(10);
make.height.offset(90);
}];
// [self drawSmallsView:viewbottom values:@[@"模拟余额",@"模拟转账",@"短信通知",@"模拟关机"]];
[self drawSmallsView:viewbottom values:@[@"模拟来电",@"短信通知",@"模拟关机",@"微信通知"]];
[self drawSmallsView:viewbottom values:@[@"模拟余额",@"模拟转账",@"短信通知",@"模拟关机"]];
// [self drawSmallsView:viewbottom values:@[@"模拟来电",@"短信通知",@"模拟关机",@"微信通知"]];
SDCycleScrollView *cleScrollBottomView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero imageNamesGroup:@[]];
@ -127,28 +127,11 @@
-(void)drawInfoTop:(UIView *)view
{
[view mas_updateConstraints:^(MASConstraintMaker *make) {
make.top.offset(11);
}];
UIImage *image = [UIImage imageNamed:@"mainHome_zzBig"];
float f_w = UISCREEN_WIDTH-24;
float f_h = image.size.height*f_w/image.size.width;
UIImageView *imgvzz = [[UIImageView alloc] init];
[imgvzz setImage:image];
[view addSubview:imgvzz];
[imgvzz mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(12);
make.top.offset(0);
make.width.offset(f_w);
make.height.offset(f_h);
}];
[self drawBigBigView:imgvzz name:@"转账提示音" itag:0];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(imgvzz);
}];
// UIImage *image = [UIImage imageNamed:@"mainHome_转账提示音"];
// float f_w = (UISCREEN_WIDTH-24)/2.0*1.1;
// [view mas_updateConstraints:^(MASConstraintMaker *make) {
// make.top.offset(11);
// }];
// UIImage *image = [UIImage imageNamed:@"mainHome_zzBig"];
// float f_w = UISCREEN_WIDTH-24;
// float f_h = image.size.height*f_w/image.size.width;
// UIImageView *imgvzz = [[UIImageView alloc] init];
// [imgvzz setImage:image];
@ -159,33 +142,50 @@
// make.width.offset(f_w);
// make.height.offset(f_h);
// }];
// [self drawBigView:imgvzz name:@"转账提示音" isbig:YES itag:0];
//
// UIImageView *imgvwx = [[UIImageView alloc] init];
// [imgvwx setImage:[UIImage imageNamed:@"mainHome_模拟微信"]];
// [view addSubview:imgvwx];
// [imgvwx mas_makeConstraints:^(MASConstraintMaker *make) {
// make.top.offset(0);
// make.right.equalTo(view).offset(-12);
// make.width.offset(UISCREEN_WIDTH-f_w-26);
// make.height.offset((f_h-12)/2.0);
// }];
// [self drawBigView:imgvwx name:@"模拟微信" isbig:NO itag:1];
//
// UIImageView *imgvzfb = [[UIImageView alloc] init];
// [imgvzfb setImage:[UIImage imageNamed:@"mainHome_模拟支付宝"]];
// [view addSubview:imgvzfb];
// [imgvzfb mas_makeConstraints:^(MASConstraintMaker *make) {
// make.bottom.equalTo(imgvzz);
// make.right.equalTo(view).offset(-12);
// make.width.offset(UISCREEN_WIDTH-f_w-18);
// make.height.equalTo(imgvwx);
// }];
// [self drawBigView:imgvzfb name:@"模拟支付宝" isbig:NO itag:2];
//
// [self drawBigBigView:imgvzz name:@"转账提示音" itag:0];
// [view mas_makeConstraints:^(MASConstraintMaker *make) {
// make.bottom.equalTo(imgvzz);
// }];
UIImage *image = [UIImage imageNamed:@"mainHome_转账提示音"];
float f_w = (UISCREEN_WIDTH-24)/2.0*1.1;
float f_h = image.size.height*f_w/image.size.width;
UIImageView *imgvzz = [[UIImageView alloc] init];
[imgvzz setImage:image];
[view addSubview:imgvzz];
[imgvzz mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(12);
make.top.offset(0);
make.width.offset(f_w);
make.height.offset(f_h);
}];
[self drawBigView:imgvzz name:@"转账提示音" isbig:YES itag:0];
UIImageView *imgvwx = [[UIImageView alloc] init];
[imgvwx setImage:[UIImage imageNamed:@"mainHome_模拟微信"]];
[view addSubview:imgvwx];
[imgvwx mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.offset(0);
make.right.equalTo(view).offset(-12);
make.width.offset(UISCREEN_WIDTH-f_w-26);
make.height.offset((f_h-12)/2.0);
}];
[self drawBigView:imgvwx name:@"模拟微信" isbig:NO itag:1];
UIImageView *imgvzfb = [[UIImageView alloc] init];
[imgvzfb setImage:[UIImage imageNamed:@"mainHome_模拟支付宝"]];
[view addSubview:imgvzfb];
[imgvzfb mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(imgvzz);
make.right.equalTo(view).offset(-12);
make.width.offset(UISCREEN_WIDTH-f_w-18);
make.height.equalTo(imgvwx);
}];
[self drawBigView:imgvzfb name:@"模拟支付宝" isbig:NO itag:2];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(imgvzz);
}];
}
-(void)drawSmallsView:(UIView *)view values:(NSArray *)values
{
@ -447,12 +447,14 @@
break;
case 4:
{
UIViewController *vc = [NSClassFromString(@"YuYinDianHuaViewController") new];
[self.viewController.navigationController pushViewController:vc animated:YES];
}
break;
case 5:
{
UIViewController *vc = [NSClassFromString(@"ShiPinDianHuaViewController") new];
[self.viewController.navigationController pushViewController:vc animated:YES];
}
break;
case 6:
@ -463,12 +465,14 @@
break;
case 7:
{
UIViewController *vc = [NSClassFromString(@"MoNiYuEViewController") new];
[self.viewController.navigationController pushViewController:vc animated:YES];
}
break;
case 8:
{
UIViewController *vc = [NSClassFromString(@"MoNiZhuanZhangViewController") new];
[self.viewController.navigationController pushViewController:vc animated:YES];
}
break;
case 9:

View File

@ -316,6 +316,7 @@
}
-(void)imageAction:(UIButton *)sender
{
[self endEditing:YES];
_tools.isedit = NO;
[AlterSheetView showAlterSheetTitle:@"" bts:@[@"随机获取",@"拍照",@"相册中选择"] buttomTitle:@"取消" otherBtsColor:RGBCOLOR(92, 117, 248) otherColorTitles:@[@"随机获取"] backValue:^(NSInteger tag) {
NSLog(@"%ld",tag);
@ -335,7 +336,7 @@
}
-(void)itemAction:(UIButton *)sender
{
[self endEditing:YES];
[PickerAlterView showPickers:@[@"3秒钟",@"10秒钟",@"30秒钟",@"1分钟",@"2分钟",@"3分钟",@"5分钟",@"10分钟",@"30分钟"] title:@"选择时间" backValue:^(NSString * _Nonnull strback) {
self.fieldtime.text = strback;
}];

View File

@ -0,0 +1,16 @@
//
// MoNiYuEViewController.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface MoNiYuEViewController : BaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,41 @@
//
// MoNiYuEViewController.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "MoNiYuEViewController.h"
#import "MoNiYuEView.h"
@interface MoNiYuEViewController ()
@end
@implementation MoNiYuEViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
[self showNaviGationView:YES];
[self.navigationView setTitle:@"模拟余额" titleColor:RGBCOLOR(60, 60, 60)];
[self.navigationView setBackgroundColor:[UIColor whiteColor]];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor whiteColor]];
MoNiYuEView *view = [[MoNiYuEView alloc] init];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.view);
make.top.offset(NavHeight);
}];
}
@end

View File

@ -0,0 +1,18 @@
//
// MoNiYuECollectionViewCell.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MoNiYuECollectionViewCell : UICollectionViewCell
///
@property (nonatomic , strong) baseInfoModel *model;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,94 @@
//
// MoNiYuECollectionViewCell.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "MoNiYuECollectionViewCell.h"
@interface MoNiYuECollectionViewCell ()
///
@property (nonatomic , strong) UIView *viewback;
///
@property (nonatomic , strong) UIImageView *imgvback;
///
@property (nonatomic , strong) UILabel *lbname;
///
@property (nonatomic , strong) UIImageView *imgvselect;
@end
@implementation MoNiYuECollectionViewCell
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
UIView *viewback = [[UIView alloc] init];
[viewback setBackgroundColor:RGBCOLOR(246, 246, 246)];
[self.contentView addSubview:viewback];
[viewback mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
[viewback.layer setMasksToBounds:YES];
[viewback.layer setCornerRadius:16];
[viewback.layer setBorderWidth:1];
[viewback.layer setBorderColor:RGBCOLOR(246, 246, 246).CGColor];
_viewback = viewback;
UIImageView *imgvback = [[UIImageView alloc] init];
[imgvback setContentMode:UIViewContentModeScaleAspectFit];
[viewback addSubview:imgvback];
[imgvback mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.offset(16);
make.left.right.equalTo(viewback);
make.bottom.equalTo(viewback).offset(-50);
}];
_imgvback = imgvback;
UILabel *lbname = [[UILabel alloc] init];
[lbname setText:@"微信钱包"];
[lbname setTextColor:RGBCOLOR(26, 26, 26)];
[lbname setTextAlignment:NSTextAlignmentCenter];
[lbname setFont:[UIFont systemFontOfSize:14]];
[viewback addSubview:lbname];
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(imgvback.mas_bottom).offset(14);
make.left.right.equalTo(viewback);
}];
_lbname = lbname;
UIImageView *imgvselect = [[UIImageView alloc] init];
[imgvselect setImage:[UIImage imageNamed:@"zz_wx_select"]];
[viewback addSubview:imgvselect];
[imgvselect mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.offset(26);
make.right.bottom.equalTo(viewback);
}];
_imgvselect = imgvselect;
}
return self;
}
-(void)setModel:(baseInfoModel *)model
{
_model = model;
self.imgvback.image = [UIImage imageNamed:[NSString stringWithFormat:@"zz_wx_%@",model.title]];
self.lbname.text = model.title;
if(model.select)
{
[self.viewback.layer setBorderColor:RGBCOLOR(119, 140, 245).CGColor];
[self.imgvselect setHidden:NO];
}
else
{
[self.viewback.layer setBorderColor:RGBCOLOR(246, 246, 246).CGColor];
[self.imgvselect setHidden:YES];
}
}
@end

View File

@ -0,0 +1,16 @@
//
// MoNiYuEView.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MoNiYuEView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,125 @@
//
// MoNiYuEView.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "MoNiYuEView.h"
#import "MoNiYuECollectionViewCell.h"
@interface MoNiYuEView ()<UICollectionViewDelegate,UICollectionViewDataSource>
///
@property (nonatomic , strong) UICollectionView *collect;
///
@property (nonatomic , strong) NSMutableArray *arrdata;
@end
@implementation MoNiYuEView
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.minimumLineSpacing = 0;
layout.minimumInteritemSpacing = 0;
UICollectionView *collect = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
[collect setScrollEnabled:NO];
[collect setDelegate:self];
[collect setDataSource:self];
[collect setBackgroundColor:[UIColor clearColor]];
[self addSubview:collect];
[collect mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.width.top.equalTo(self);
make.bottom.equalTo(self).offset(-TabHeight-30);
}];
[collect registerClass:[MoNiYuECollectionViewCell class] forCellWithReuseIdentifier:@"MoNiYuECollectionViewCell"];
_collect = collect;
UIButton *btok = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH-32, 46)];
[btok setTitle:@"开始模拟" forState:UIControlStateNormal];
[btok setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btok.titleLabel setFont:[UIFont systemFontOfSize:15]];
[btok.layer setMasksToBounds:YES];
[btok.layer setCornerRadius:23];
[self addSubview:btok];
[btok mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(16);
make.bottom.equalTo(self).offset(-TabHeight+34);
make.right.equalTo(self).offset(-16);
make.height.offset(46);
}];
[btok addTarget:self action:@selector(okAction) forControlEvents:UIControlEventTouchUpInside];
[Tools changedView:btok colors:@[(id)RGBCOLOR(119, 140, 245).CGColor,(id)RGBCOLOR(166, 121, 244).CGColor] startPoint:CGPointMake(0, 0) endPoint:CGPointMake(1, 0)];
[self getdata];
}
return self;
}
-(void)getdata
{
self.arrdata = [NSMutableArray new];
NSArray *arr = @[@"微信钱包",@"微信服务",@"微信零钱"];
for(int i = 0 ; i < arr.count; i++)
{
baseInfoModel *model = [baseInfoModel new];
model.title = arr[i];
if(i==0)
{
model.select = YES;
}
[self.arrdata addObject:model];
}
}
-(void)okAction
{
}
#pragma mark - UICollectionView
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return self.arrdata.count;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
MoNiYuECollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MoNiYuECollectionViewCell" forIndexPath:indexPath];
cell.model = self.arrdata[indexPath.row];
return cell;
}
//section
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
return UIEdgeInsetsMake(20, 20, 20, 20);
}
//cell
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{
return 20;
}
//cell
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout ForSectionAtIndex:(NSInteger)section{
return 20;
}
// UICollectionViewCell
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake((UISCREEN_WIDTH-60)/2.0, (UISCREEN_HEIGHT-NavHeight-TabHeight-100)/2.0);
}
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
for(baseInfoModel *model in self.arrdata)
{
model.select = NO;
}
baseInfoModel *model = self.arrdata[indexPath.row];
model.select = YES;
[self.collect reloadData];
}
@end

View File

@ -0,0 +1,16 @@
//
// MoNiZhuanZhangViewController.h
// ProductApp
//
// Created by 工作 on 2025/3/29.
//
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface MoNiZhuanZhangViewController : BaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,44 @@
//
// MoNiZhuanZhangViewController.m
// ProductApp
//
// Created by on 2025/3/29.
//
#import "MoNiZhuanZhangViewController.h"
#import "MoNiZhuanZhangView.h"
@interface MoNiZhuanZhangViewController ()
@end
@implementation MoNiZhuanZhangViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
[self showNaviGationView:YES];
[self.navigationView setTitle:@"模拟转账" titleColor:RGBCOLOR(60, 60, 60)];
[self.navigationView setBackgroundColor:[UIColor whiteColor]];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor whiteColor]];
MoNiZhuanZhangView *view = [[MoNiZhuanZhangView alloc] init];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.view);
make.top.offset(NavHeight);
}];
}
@end

View File

@ -0,0 +1,16 @@
//
// MoNiZhuanZhangView.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MoNiZhuanZhangView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,110 @@
//
// MoNiZhuanZhangView.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "MoNiZhuanZhangView.h"
@implementation MoNiZhuanZhangView
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
UIView *viewwx = [[UIView alloc] init];
[viewwx setBackgroundColor:[UIColor whiteColor]];
[self addSubview:viewwx];
[viewwx mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(16);
make.right.equalTo(self).offset(-16);
make.top.offset(20);
make.height.offset((UISCREEN_WIDTH-32)*146/343);
}];
[self drawItemView:viewwx title:@"微信模拟" itag:0];
}
return self;
}
-(void)drawItemView:(UIView *)view title:(NSString *)title itag:(int)itag
{
[view.layer setMasksToBounds:YES];
[view.layer setCornerRadius:10];
UIImageView *imgvback = [[UIImageView alloc] init];
[imgvback setImage:[UIImage imageNamed:[NSString stringWithFormat:@"mnzz_%@",title]]];
[view addSubview:imgvback];
[imgvback mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(view);
}];
UILabel *lbname = [[UILabel alloc] init];
[lbname setText:title];
[lbname setTextColor:RGBCOLOR(1, 30, 18)];
[lbname setTextAlignment:NSTextAlignmentLeft];
[lbname setFont:[UIFont fontWithName:@"AlimamaShuHeiTi-Bold" size:26]];
[view addSubview:lbname];
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(20);
make.top.offset(16);
}];
UILabel *lbinfo = [[UILabel alloc] init];
[lbinfo setText:@"仅供娱乐"];
[lbinfo setTextColor:RGBCOLOR(128, 147, 140)];
[lbinfo setTextAlignment:NSTextAlignmentLeft];
[lbinfo setFont:[UIFont fontWithName:@"AlibabaPuHuiTi-Regular" size:16]];
[view addSubview:lbinfo];
[lbinfo mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(lbname);
make.top.equalTo(lbname.mas_bottom).offset(6);
}];
UILabel *lbzr = [[UILabel alloc] init];
[lbzr setText:@"转入"];
[lbzr setTextColor:[UIColor whiteColor]];
[lbzr setTextAlignment:NSTextAlignmentCenter];
[lbzr setFont:[UIFont fontWithName:@"AlibabaPuHuiTi-Regular" size:16]];
[lbzr setBackgroundColor:RGBCOLOR(1, 30, 18)];
[lbzr.layer setMasksToBounds:YES];
[lbzr.layer setCornerRadius:16];
[view addSubview:lbzr];
[lbzr mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(lbname);
make.size.sizeOffset(CGSizeMake(74, 32));
make.bottom.equalTo(view).offset(-16);
}];
UILabel *lbzc = [[UILabel alloc] init];
[lbzc setText:@"转出"];
[lbzc setTextColor:RGBCOLOR(1, 30, 18)];
[lbzc setTextAlignment:NSTextAlignmentCenter];
[lbzc setFont:[UIFont fontWithName:@"AlibabaPuHuiTi-Regular" size:16]];
[lbzc setBackgroundColor:[UIColor whiteColor]];
[lbzc.layer setMasksToBounds:YES];
[lbzc.layer setCornerRadius:16];
[view addSubview:lbzc];
[lbzc mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(lbzr.mas_right).offset(12);
make.size.sizeOffset(CGSizeMake(74, 32));
make.bottom.equalTo(view).offset(-16);
}];
UIButton *btitem = [[UIButton alloc] init];
[view addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(view);
}];
[btitem setTag:itag];
[btitem addTarget:self action:@selector(btAction:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)btAction:(UIButton *)sender
{
}
@end

View File

@ -331,6 +331,7 @@
}
-(void)imageAction:(UIButton *)sender
{
[self endEditing:YES];
if(sender.tag==1)
{
_tools.isedit = YES;
@ -359,7 +360,7 @@
}
-(void)itemAction:(UIButton *)sender
{
[self endEditing:YES];
[PickerAlterView showPickers:@[@"3秒钟",@"10秒钟",@"30秒钟",@"1分钟",@"2分钟",@"3分钟",@"5分钟",@"10分钟",@"30分钟"] title:@"选择时间" backValue:^(NSString * _Nonnull strback) {
self.fieldtime.text = strback;
}];

View File

@ -10,7 +10,7 @@
NS_ASSUME_NONNULL_BEGIN
@interface MNHeiPeiView : UIView
///0短信 1微信(这个参数最后设置)
///0短信 1微信(这个参数最后设置) 2视频通话 3微信语音
@property (nonatomic , assign) int type;
@property (nonatomic , assign) int time;
///
@ -19,6 +19,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic , strong) NSString *strname;
@property (nonatomic , strong) NSString *strnumber;
@property (nonatomic , strong) NSString *strinfo;
///
///
@property (nonatomic , strong) NSURL *videourl;
@end
NS_ASSUME_NONNULL_END

View File

@ -9,7 +9,8 @@
#import "BaseViewController.h"
#import "DuanXinShowView.h"
#import "ShiPinDianHuaShowView.h"
#import "YuYinDianHuaShowView.h"
@interface MNHeiPeiView ()
///
@ -73,20 +74,60 @@
[self.lbts setText:[NSString stringWithFormat:@"%d分钟后将会模拟微信请不要锁频也不要返回桌面",self.time/60]];
}
}
else if (type==2||type==3)
{
[self.lbts setText:[NSString stringWithFormat:@"%d秒后将会模拟微信来电请不要锁频也不要返回桌面",self.time]];
if(self.time>=60)
{
[self.lbts setText:[NSString stringWithFormat:@"%d分钟后将会模拟微信来电请不要锁频也不要返回桌面",self.time/60]];
}
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(self.time * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
DuanXinShowView *view = [DuanXinShowView new];
[self addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
view.time = self.time;
view.imageBack = self.imageBack;
view.imageHead = self.imageHead;
view.strname = self.strname;
view.strnumber = self.strnumber;
view.strinfo = self.strinfo;
view.type = type;
if(type==0||type==1)
{
DuanXinShowView *view = [DuanXinShowView new];
[self addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
view.time = self.time;
view.imageBack = self.imageBack;
view.imageHead = self.imageHead;
view.strname = self.strname;
view.strnumber = self.strnumber;
view.strinfo = self.strinfo;
view.type = type;
}
else if (type==2)
{
ShiPinDianHuaShowView *view = [ShiPinDianHuaShowView new];
[self addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
view.time = self.time;
view.imageHead = self.imageHead;
view.strname = self.strname;
view.videourl = self.videourl;
view.type = type;
}
else if (type==3)
{
YuYinDianHuaShowView *view = [YuYinDianHuaShowView new];
[self addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
view.time = self.time;
view.imageHead = self.imageHead;
view.strname = self.strname;
view.type = type;
}
});
}
-(void)tsAction
{
@ -100,6 +141,7 @@
vc.statusbarRef = UIStatusBarStyleDefault;
[vc refShowStateBar:YES];
[self removeFromSuperview];
[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}
@end

View File

@ -0,0 +1,16 @@
//
// ShiPinDianHuaViewController.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface ShiPinDianHuaViewController : BaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,50 @@
//
// ShiPinDianHuaViewController.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "ShiPinDianHuaViewController.h"
#import "ShiPinDianHuaView.h"
@interface ShiPinDianHuaViewController ()
@end
@implementation ShiPinDianHuaViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
if(!self.statebar)
{
if(self.statusbarRef)
{
return self.statusbarRef;
}
}
return UIStatusBarStyleDefault;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
[self showNaviGationView:YES];
[self.navigationView setTitle:@"视频电话" titleColor:RGBCOLOR(60, 60, 60)];
[self.navigationView setBackgroundColor:RGBCOLOR(242, 242, 242)];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:RGBCOLOR(242, 242, 242)];
ShiPinDianHuaView *view = [[ShiPinDianHuaView alloc] init];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.view);
make.top.offset(NavHeight);
}];
}
@end

View File

@ -0,0 +1,27 @@
//
// ShiPinDianHuaShowView.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef void(^ShiPinDianHuaShowViewBack)(void);
@interface ShiPinDianHuaShowView : UIView
///0短信 1微信
@property (nonatomic , assign) int type;
@property (nonatomic , assign) int time;
@property (nonatomic , strong) UIImage *imageHead;
@property (nonatomic , strong) NSString *strname;
///
@property (nonatomic , strong) NSURL *videourl;
///
//@property (nonatomic , strong) ShiPinDianHuaShowViewBack backGuaDuan;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,459 @@
//
// ShiPinDianHuaShowView.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "ShiPinDianHuaShowView.h"
#import <AVFoundation/AVFoundation.h>
#import <Photos/Photos.h>
#import "BaseViewController.h"
#import <AVKit/AVKit.h>
#import "DuanXinShowMainHomeView.h"
@interface ShiPinDianHuaShowView ()<AVCapturePhotoCaptureDelegate>
// ------------- -------------
//
@property(nonatomic)AVCaptureDevice *device;
//AVCaptureDeviceInput 使AVCaptureDevice
@property(nonatomic)AVCaptureDeviceInput *input;
//
@property (nonatomic)AVCapturePhotoOutput *imageOutPut;
//session
@property(nonatomic)AVCaptureSession *session;
//
@property(nonatomic)AVCaptureVideoPreviewLayer *previewLayer;
// ------------- UI --------------
///
@property (nonatomic , strong) UIView *viewmy;
///
@property (nonatomic , strong) UIView *viewwjt;
///
@property (nonatomic , strong) UIImageView *imgvhd;
///
@property (nonatomic , strong) UILabel *lbname;
///
///
@property (nonatomic , strong) UIView *viewjt;
///
@property (nonatomic , strong) UIView *viewplayer;
///
@property (nonatomic , retain) AVPlayerViewController *avc;
@property (nonatomic , strong) AVPlayer *player;
@property(nonatomic,retain)AVPlayerItem * playItem;
@end
@implementation ShiPinDianHuaShowView
-(void)start
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self.session startRunning];
});
}
-(void)dis
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self.session stopRunning];
});
[Tools stopTimer];
if(self.player)
{
[self.player pause];
self.player = nil;
self.avc = nil;
}
}
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
UITapGestureRecognizer *gesture1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tsAction)];
[self addGestureRecognizer:gesture1];
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(shuanji)];
gesture.numberOfTapsRequired = 2;
[self addGestureRecognizer:gesture];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
BaseViewController *vc = (BaseViewController *)self.viewController;
vc.statusbarRef = UIStatusBarStyleLightContent;
[vc refShowStateBar:YES];
});
///
UIView *viewmy = [[UIView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
[viewmy setBackgroundColor:[UIColor blackColor]];
[self addSubview:viewmy];
_viewmy = viewmy;
UIButton *btsf = [[UIButton alloc] init];
[btsf setImage:[UIImage imageNamed:@"spth_sf"] forState:UIControlStateNormal];
[self addSubview:btsf];
[btsf mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.width.height.offset(40);
make.top.offset(KMagrinTop);
}];
[self customCamera];
[self drawWeiJieTing];
}
return self;
}
-(void)setType:(int)type
{
self.imgvhd.image = self.imageHead;
self.lbname.text = self.strname;
}
-(void)drawPlayerShow
{
self.avc = [[AVPlayerViewController alloc] init];
[self.viewplayer addSubview:self.avc.view];
[self.avc.view mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.viewplayer);
}];
NSURL *movieUrl = self.videourl;
// item
self.playItem=[AVPlayerItem playerItemWithURL:movieUrl];
//
self.player = [AVPlayer playerWithPlayerItem: self.playItem];
self.avc.player=self.player;
//
self.avc.showsPlaybackControls = NO;
self.player.externalPlaybackVideoGravity=AVLayerVideoGravityResizeAspectFill;
//itemkvo,使item status
[ self.playItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew context:nil];
}
///
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"status"]) {
switch (self.playItem.status) {
case AVPlayerItemStatusReadyToPlay:
{
[self.avc.player play];
NSLog(@"开始播放");
}
break;
case AVPlayerItemStatusFailed:
NSLog(@"出错了");
break;
default:
NSLog(@"不知道什么问题?");
break;
}
}
}
///
-(void)drawJieTing
{
UIView *viewjt = [[UIView alloc] init];
[viewjt setBackgroundColor:[UIColor clearColor]];
[self addSubview:viewjt];
[viewjt mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
_viewjt = viewjt;
UILabel *lbtime = [[UILabel alloc] init];
[lbtime setText:@"00:00"];
[lbtime setTextColor:[UIColor whiteColor]];
[lbtime setTextAlignment:NSTextAlignmentCenter];
[lbtime setFont:[UIFont fontWithName:@"PingFangSC-Medium" size:18]];
[self addSubview:lbtime];
[lbtime mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.offset(KMagrinTop);
make.height.offset(40);
make.centerX.equalTo(self);
}];
[Tools startTimerWithStartTime:1000 isCountDown:YES result:^(NSInteger tag) {
NSInteger temp = 1000-tag;
lbtime.text = [self getSecTime:temp];
}];
float fjjj = (UISCREEN_WIDTH-80-64*3)/2.0;
NSArray *arr = @[@"模糊背景",@"挂断",@"翻转"];
for(int i = 0 ; i < arr.count; i++)
{
UIButton *btitem = [[UIButton alloc] init];
[btitem setImage:[UIImage imageNamed:[NSString stringWithFormat:@"spth_%@",arr[i]]] forState:UIControlStateNormal];
[viewjt addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(40+(64+fjjj)*i);
make.width.offset(64);
make.height.offset(64);
make.bottom.equalTo(viewjt).offset(-TabHeight);
}];
if(i==1)
{
[btitem setTag:0];
}
else
{
[btitem setTag:i+4];
}
[btitem addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
}
arr = @[@"麦克风已开",@"扬声器已开",@"摄像头已开"];
for(int i = 0 ; i < arr.count; i++)
{
UIButton *btitem = [[UIButton alloc] init];
[btitem setImage:[UIImage imageNamed:[NSString stringWithFormat:@"spth_%@",arr[i]]] forState:UIControlStateNormal];
[btitem setTitle:arr[i] forState:UIControlStateNormal];
[btitem setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btitem.titleLabel setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:12]];
[viewjt addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(40+(64+fjjj)*i);
make.width.offset(64);
make.height.offset(100);
make.bottom.equalTo(viewjt).offset(-TabHeight-84);
}];
[btitem setIconInTopWithSpacing:8];
[btitem setTag:i+4];
[btitem addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
}
UIView *viewplayer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
[viewplayer setBackgroundColor:[UIColor whiteColor]];
[self addSubview:viewplayer];
_viewplayer = viewplayer;
[self sendSubviewToBack:viewplayer];
[self.viewwjt removeFromSuperview];
[self.viewmy setFrame:CGRectMake(UISCREEN_WIDTH-108, NavHeight, 100, 100*UISCREEN_HEIGHT/UISCREEN_WIDTH)];
[self.viewmy.layer setMasksToBounds:YES];
[self.viewmy.layer setCornerRadius:8];
self.previewLayer.frame = CGRectMake(0, 0, self.viewmy.width,self.viewmy.height);
[self drawPlayerShow];
}
///
-(void)drawWeiJieTing
{
UIView *viewwjt = [[UIView alloc] init];
[viewwjt setBackgroundColor:[UIColor clearColor]];
[self addSubview:viewwjt];
[viewwjt mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
_viewwjt = viewwjt;
UIImageView *imgvhd = [[UIImageView alloc] init];
[viewwjt addSubview:imgvhd];
[imgvhd mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.offset(68);
make.centerX.equalTo(viewwjt);
make.top.offset(NavHeight+42);
}];
[imgvhd.layer setMasksToBounds:YES];
[imgvhd.layer setCornerRadius:6];
_imgvhd = imgvhd;
UILabel *lbname = [[UILabel alloc] init];
[lbname setTextColor:[UIColor whiteColor]];
[lbname setTextAlignment:NSTextAlignmentCenter];
[lbname setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:20]];
[viewwjt addSubview:lbname];
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(imgvhd.mas_bottom).offset(12);
make.centerX.equalTo(viewwjt);
make.width.lessThanOrEqualTo(@(200));
}];
_lbname = lbname;
UIButton *btgd = [[UIButton alloc] init];
[btgd setImage:[UIImage imageNamed:@"spth_挂断"] forState:UIControlStateNormal];
[viewwjt addSubview:btgd];
[btgd mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(24);
make.width.height.offset(64);
make.bottom.equalTo(viewwjt).offset(-TabHeight);
}];
[btgd setTag:0];
[btgd addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
UIButton *btjt = [[UIButton alloc] init];
[btjt setImage:[UIImage imageNamed:@"spth_接听"] forState:UIControlStateNormal];
[viewwjt addSubview:btjt];
[btjt mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(viewwjt).offset(-24);
make.width.height.bottom.equalTo(btgd);
}];
[btjt setTag:1];
[btjt addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
float fjjj = (UISCREEN_WIDTH-48-64*4)/3.0;
NSArray *arr = @[@"麦克风已开",@"摄像头已开",@"模糊背景",@"翻转"];
for(int i = 0 ; i < arr.count; i++)
{
UIButton *btitem = [[UIButton alloc] init];
[btitem setTitle:arr[i] forState:UIControlStateNormal];
[btitem setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btitem.titleLabel setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:12]];
[btitem setImage:[UIImage imageNamed:[NSString stringWithFormat:@"spth_%@",arr[i]]] forState:UIControlStateNormal];
[viewwjt addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(24+(64+fjjj)*i);
make.width.offset(64);
make.height.offset(100);
make.bottom.equalTo(btgd.mas_top).offset(-20);
}];
[btitem setIconInTopWithSpacing:8];
[btitem setTag:i+2];
[btitem addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
}
}
-(void)funcAction:(UIButton *)sender
{
switch (sender.tag) {
case 0:
{///
[self dis];
// if(self.backGuaDuan)
// {
// self.backGuaDuan();
// }
///
DuanXinShowMainHomeView *view = [[DuanXinShowMainHomeView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
[self.superview addSubview:view];
[self removeFromSuperview];
}
break;
case 1:
{///
[self drawJieTing];
}
break;
default:
break;
}
}
#pragma mark -
-(void)customCamera
{
// 1.1 session
self.session = [[AVCaptureSession alloc] init];
if ([self.session canSetSessionPreset:AVCaptureSessionPreset1280x720]) {
[self.session setSessionPreset:AVCaptureSessionPreset1280x720]; //
}
// 1.2 ()
// self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
self.device = [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltInWideAngleCamera mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionFront];
// 1.3
self.input = [[AVCaptureDeviceInput alloc]initWithDevice:self.device error:nil];
if ([self.session canAddInput:self.input]) {
[self.session addInput:self.input];
}
// 1.4
self.imageOutPut = [[AVCapturePhotoOutput alloc]init];
if ([self.session canAddOutput:self.imageOutPut]) {
[self.session addOutput:self.imageOutPut];
}
AVCaptureConnection *imageConnection = [self.imageOutPut connectionWithMediaType:AVMediaTypeVideo];
// imageConnection
if (imageConnection.supportsVideoOrientation) {
imageConnection.videoOrientation = AVCaptureVideoOrientationPortrait;
}
double width = 0.0;
double height = 0.0;
CGSize screenSize = CGSizeMake(UISCREEN_WIDTH, UISCREEN_HEIGHT);
width = screenSize.width;
height = screenSize.height;
// 2.1 使self.sessionself.sessioninputlayer
self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:self.session];
self.previewLayer.frame = CGRectMake(0, 0, width,height);
self.previewLayer.connection.videoOrientation = AVCaptureVideoOrientationPortrait; //
self.previewLayer.videoGravity = AVLayerVideoGravityResize;
[self.viewmy.layer addSublayer:self.previewLayer];
// 3.1
if ([self.device lockForConfiguration:nil]) { //
//
if ([[self.imageOutPut supportedFlashModes] containsObject:@(AVCaptureFlashModeAuto)]) {
self.imageOutPut.photoSettingsForSceneMonitoring.flashMode = AVCaptureFlashModeAuto;
}
//
if ([self.device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeAutoWhiteBalance]) {
[self.device setWhiteBalanceMode:AVCaptureWhiteBalanceModeAutoWhiteBalance];
}
//
[self.device unlockForConfiguration];
}
// 4.1
dispatch_async(dispatch_get_global_queue(0, 0), ^{
[self.session startRunning];
});
// [self drawUI];
}
-(void)tsAction
{
}
-(void)shuanji
{
}
-(NSString *)getSecTime:(NSInteger)itemp
{
NSString *strback = @"00:00";
if(itemp>0)
{
NSInteger ifen = itemp/60;
NSInteger imiao = itemp%60;
strback = [NSString stringWithFormat:@"%ld",ifen];
if(ifen<10)
{
strback = [NSString stringWithFormat:@"0%ld",ifen];
}
if(imiao<10)
{
strback = [NSString stringWithFormat:@"%@:0%ld",strback,imiao];
}
else
{
strback = [NSString stringWithFormat:@"%@:%ld",strback,imiao];
}
}
return strback;
}
@end

View File

@ -0,0 +1,16 @@
//
// ShiPinDianHuaView.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface ShiPinDianHuaView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,351 @@
//
// ShiPinDianHuaView.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "ShiPinDianHuaView.h"
#import "WYCamaImageTools.h"
#import "PickerAlterView.h"
#import "AlterSheetView.h"
#import "UIImageView+VideoImageView.h"
#import "BaseViewController.h"
#import "MNHeiPeiView.h"
#import <AVFoundation/AVFoundation.h>
#import <Photos/Photos.h>
@interface ShiPinDianHuaView ()<WYCamaImageToolsDelegate>
@property (nonatomic , strong) NSMutableArray *arrViews;
///
@property (nonatomic , strong) NSMutableArray *arrField;
///
@property (nonatomic , strong) UIImageView *imgvhd;
@property (nonatomic , strong) UIImageView *imgvsp;
///
@property (nonatomic , strong) UIImageView *imgvSelect;
@property (nonatomic, strong) WYCamaImageTools *tools;
///
@property (nonatomic , strong) NSURL *videourl;
@end
@implementation ShiPinDianHuaView
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
self.arrViews = [NSMutableArray new];
self.arrField = [NSMutableArray new];
NSArray *arrtt = @[@"来电昵称",@"来电头像",@"来电视频",@"延迟视频"];
NSArray *arrpl = @[@"请输入昵称",@"请上传",@"请上传",@"请选择"];
UIView *viewlast = nil;
for(int i = 0 ; i < arrtt.count; i++)
{
UIView *viewitem = [[UIView alloc] init];
[viewitem setBackgroundColor:[UIColor whiteColor]];
[self addSubview:viewitem];
[viewitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self);
if(i==0)
{
make.top.offset(0);
}
else
{
make.top.equalTo(viewlast.mas_bottom);
}
make.height.offset(53);
}];
viewlast = viewitem;
[self.arrViews addObject:viewitem];
BOOL isselect = YES;
if(i==0)isselect=NO;
UITextField *field = [self drawItemView:viewitem andtitle:arrtt[i] isselect:isselect platch:arrpl[i] tag:i];
[self.arrField addObject:field];
if(i==1)
{
UIImageView *imgvhd = [[UIImageView alloc] init];
[imgvhd setImage:[UIImage imageNamed:@"my_nomohead"]];
[viewitem addSubview:imgvhd];
[imgvhd mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(viewitem).offset(-33);
make.centerY.equalTo(viewitem);
make.width.height.offset(58);
}];
[imgvhd.layer setMasksToBounds:YES];
[imgvhd.layer setCornerRadius:6];
_imgvhd = imgvhd;
[viewitem mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.offset(86);
}];
}
else if (i==3)
{
field.text = @"3秒钟";
}
}
UIView *viewbottom = [[UIView alloc] init];
[viewbottom setBackgroundColor:[UIColor whiteColor]];
[self addSubview:viewbottom];
[viewbottom mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self);
make.height.offset(TabHeight+20);
}];
UIButton *btok = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH-32, 46)];
[btok setTitle:@"确定" forState:UIControlStateNormal];
[btok setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btok.titleLabel setFont:[UIFont systemFontOfSize:15]];
[btok.layer setMasksToBounds:YES];
[btok.layer setCornerRadius:23];
[viewbottom addSubview:btok];
[btok mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(16);
make.top.offset(9);
make.right.equalTo(viewbottom).offset(-16);
make.height.offset(46);
}];
[btok addTarget:self action:@selector(okAction) forControlEvents:UIControlEventTouchUpInside];
[Tools changedView:btok colors:@[(id)RGBCOLOR(119, 140, 245).CGColor,(id)RGBCOLOR(166, 121, 244).CGColor] startPoint:CGPointMake(0, 0) endPoint:CGPointMake(1, 0)];
}
return self;
}
-(UITextField *)drawItemView:(UIView *)view andtitle:(NSString *)title isselect:(BOOL)isselect platch:(NSString *)platch tag:(int)tag
{
float f_w = [Tools getWidthWithText:title height:20 font:15]+5;
UILabel *lbname = [[UILabel alloc] init];
[lbname setText:title];
[lbname setTextColor:RGBCOLOR(102, 102, 102)];
[lbname setTextAlignment:NSTextAlignmentLeft];
[lbname setFont:[UIFont systemFontOfSize:15]];
[view addSubview:lbname];
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(15);
make.centerY.equalTo(view);
make.width.offset(f_w);
}];
UITextField *field = [[UITextField alloc] init];
[field setTextColor:RGBCOLOR(102, 102, 102)];
[field setTextAlignment:NSTextAlignmentRight];
[field setFont:[UIFont systemFontOfSize:15]];
[view addSubview:field];
[field mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(lbname.mas_right);
make.top.bottom.equalTo(view);
make.right.equalTo(view).offset(-15);
}];
[field setPlaceholder:platch];
if(isselect)
{
[field mas_updateConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view).offset(-33);
}];
UIImageView *imgvnext = [[UIImageView alloc] init];
[imgvnext setImage:[UIImage imageNamed:@"my_next"]];
[view addSubview:imgvnext];
[imgvnext mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view).offset(-9);
make.centerY.equalTo(view);
make.width.height.offset(20);
}];
UIButton *btitem = [[UIButton alloc] init];
[view addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.bottom.equalTo(field);
make.right.equalTo(view);
}];
[btitem setTag:tag];
[btitem addTarget:self action:@selector(itemAction:) forControlEvents:UIControlEventTouchUpInside];
}
UIView *viewline = [[UIView alloc] init];
[viewline setBackgroundColor:RGBCOLOR(238, 238, 238)];
[view addSubview:viewline];
[viewline mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(16);
make.bottom.equalTo(view);
make.right.equalTo(view).offset(-16);
make.height.offset(1);
}];
return field;
}
-(void)itemAction:(UIButton *)sender
{
[self endEditing:YES];
if(sender.tag==1)
{
self.tools.isvideo = NO;
self.tools.isedit = YES;
[AlterSheetView showAlterSheetTitle:@"" bts:@[@"随机获取",@"拍照",@"相册中选择"] buttomTitle:@"取消" otherBtsColor:RGBCOLOR(92, 117, 248) otherColorTitles:@[@"随机获取"] backValue:^(NSInteger tag) {
NSLog(@"%ld",tag);
if(tag==1)
{
}
else if(tag==2)
{
[self.tools choosePicWithViewController:self.viewController chooseType:ChooseTypeTakePic];
}
else if(tag==3)
{
[self.tools choosePicWithViewController:self.viewController chooseType:ChooseTypeAlbum];
}
}];
}
else if (sender.tag==2)
{
self.tools.isvideo = YES;
self.tools.isedit = NO;
[AlterSheetView showAlterSheetTitle:@"" bts:@[@"拍照",@"相册中选择"] buttomTitle:@"取消" otherBtsColor:RGBCOLOR(92, 117, 248) otherColorTitles:@[@"随机获取"] backValue:^(NSInteger tag) {
NSLog(@"%ld",tag);
if(tag==1)
{
[self.tools choosePicWithViewController:self.viewController chooseType:ChooseTypeTakePic];
}
else if(tag==2)
{
[self.tools choosePicWithViewController:self.viewController chooseType:ChooseTypeAlbum];
}
}];
}
else if (sender.tag==3)
{
[PickerAlterView showPickers:@[@"3秒钟",@"10秒钟",@"30秒钟",@"1分钟",@"2分钟",@"3分钟",@"5分钟",@"10分钟",@"30分钟"] title:@"选择时间" backValue:^(NSString * _Nonnull strback) {
UITextField *field = self.arrField[3];
field.text = strback;
}];
}
}
-(void)okAction
{
if([self checkCameraPermission]==NO)
{
[HXHud showMessage:@"请打开相机权限" afterDelayType:0];
return;
}
UITextField *fieldname = self.arrField[0];
// if(fieldname.text.length==0)
// {
// [HXHud showMessage:@"请输入来电昵称" afterDelayType:0];
// return;
// }
// if(self.videourl==nil)
// {
// [HXHud showMessage:@"请选择来电视频" afterDelayType:0];
// return;
// }
UITextField *fieldtime = self.arrField[3];
NSString *strtime = fieldtime.text;
if([strtime containsString:@"秒钟"])
{
strtime=[strtime stringByReplacingOccurrencesOfString:@"秒钟" withString:@""];
}
else
{
strtime=[strtime stringByReplacingOccurrencesOfString:@"分钟" withString:@""];
strtime = [NSString stringWithFormat:@"%d",strtime.intValue*60];
}
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
BaseViewController *vc = (BaseViewController *)self.viewController;
[vc refShowStateBar:NO];
MNHeiPeiView *viewhp = [[MNHeiPeiView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
[self.viewController.view addSubview:viewhp];
viewhp.time = strtime.intValue;
viewhp.imageHead = self.imgvhd.image;
viewhp.strname = fieldname.text;
viewhp.videourl = self.videourl;
viewhp.type = 2;
}
#pragma mark -
#pragma mark -
- (BOOL)checkCameraPermission
{
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (authStatus == AVAuthorizationStatusDenied || authStatus == AVAuthorizationStatusRestricted) {
UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"请打开相机权限" message:@"设置-隐私-相机" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *done = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url options:@{UIApplicationOpenSettingsURLString:@YES} completionHandler:nil];
}
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}];
[alertVC addAction:done];
[alertVC addAction:cancel];
[self.viewController presentViewController:alertVC animated:NO completion:^{
}];
return NO;
} else if (authStatus == AVAuthorizationStatusNotDetermined) {
[AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
dispatch_sync(dispatch_get_main_queue(), ^{
});
}];
return NO;
}
else {
return YES;
}
}
#pragma mark - WYCamaImageToolsDelegate
-(void)didEndChoosePic:(UIImage *)image
{
self.imgvhd.image = image;
}
- (void)didEndChooseVideo:(NSURL *)videourl
{
if(!self.imgvsp)
{
UIView *viewitem = self.arrViews[2];
UIImageView *imgvsp = [[UIImageView alloc] init];
[viewitem addSubview:imgvsp];
[imgvsp mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(viewitem).offset(-33);
make.centerY.equalTo(viewitem);
make.width.height.offset(58);
}];
[imgvsp.layer setMasksToBounds:YES];
[imgvsp.layer setCornerRadius:6];
_imgvsp = imgvsp;
[viewitem mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.offset(86);
}];
}
[self.imgvsp videoImageWithvideoURL:videourl atTime:0.1];
self.videourl = videourl;
}
- (WYCamaImageTools *)tools {
if (!_tools) {
_tools = [[WYCamaImageTools alloc] init];
_tools.delegate = self;
}return _tools;
}
@end

View File

@ -0,0 +1,16 @@
//
// YuYinDianHuaViewController.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import "BaseViewController.h"
NS_ASSUME_NONNULL_BEGIN
@interface YuYinDianHuaViewController : BaseViewController
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,50 @@
//
// YuYinDianHuaViewController.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "YuYinDianHuaViewController.h"
#import "YuYinDianHuaView.h"
@interface YuYinDianHuaViewController ()
@end
@implementation YuYinDianHuaViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
if(!self.statebar)
{
if(self.statusbarRef)
{
return self.statusbarRef;
}
}
return UIStatusBarStyleDefault;
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
[self showNaviGationView:YES];
[self.navigationView setTitle:@"语音电话" titleColor:RGBCOLOR(60, 60, 60)];
[self.navigationView setBackgroundColor:RGBCOLOR(242, 242, 242)];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:RGBCOLOR(242, 242, 242)];
YuYinDianHuaView *view = [[YuYinDianHuaView alloc] init];
[self.view addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self.view);
make.top.offset(NavHeight);
}];
}
@end

View File

@ -0,0 +1,20 @@
//
// YuYinDianHuaShowView.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface YuYinDianHuaShowView : UIView
///0短信 1微信
@property (nonatomic , assign) int type;
@property (nonatomic , assign) int time;
@property (nonatomic , strong) UIImage *imageHead;
@property (nonatomic , strong) NSString *strname;
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,261 @@
//
// YuYinDianHuaShowView.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "YuYinDianHuaShowView.h"
#import "BaseViewController.h"
#import "DuanXinShowMainHomeView.h"
@interface YuYinDianHuaShowView ()
///
@property (nonatomic , strong) UIImageView *imgvback;
///
@property (nonatomic , strong) UIImageView *imgvhd;
///
@property (nonatomic , strong) UILabel *lbname;
///
@property (nonatomic , strong) UIView *viewwjt;
///
@property (nonatomic , strong) UIView *viewjt;
@end
@implementation YuYinDianHuaShowView
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
BaseViewController *vc = (BaseViewController *)self.viewController;
vc.statusbarRef = UIStatusBarStyleLightContent;
[vc refShowStateBar:YES];
});
///
UIImageView *imgvback = [[UIImageView alloc] init];
[imgvback setContentMode:UIViewContentModeScaleAspectFill];
[self addSubview:imgvback];
[imgvback mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
_imgvback = imgvback;
UIImageView *imgvhd = [[UIImageView alloc] init];
[self addSubview:imgvhd];
[imgvhd mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.offset(96);
make.centerX.equalTo(self);
make.top.offset(162+NavHeight);
}];
[imgvhd.layer setMasksToBounds:YES];
[imgvhd.layer setCornerRadius:6];
_imgvhd = imgvhd;
UILabel *lbname = [[UILabel alloc] init];
[lbname setTextColor:[UIColor whiteColor]];
[lbname setTextAlignment:NSTextAlignmentCenter];
[lbname setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:20]];
[self addSubview:lbname];
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(imgvhd.mas_bottom).offset(12);
make.centerX.equalTo(self);
make.width.lessThanOrEqualTo(@(200));
}];
_lbname = lbname;
[self drawWeiJieTing];
UIButton *btsf = [[UIButton alloc] init];
[btsf setImage:[UIImage imageNamed:@"spth_sf"] forState:UIControlStateNormal];
[self addSubview:btsf];
[btsf mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.width.height.offset(40);
make.top.offset(KMagrinTop);
}];
}
return self;
}
-(void)setType:(int)type
{
self.imgvback.image = self.imageHead;
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
toolbar.barStyle = UIBarStyleBlack;
[self.imgvback addSubview:toolbar];
self.imgvhd.image = self.imageHead;
self.lbname.text = self.strname;
}
///
-(void)drawJieTing
{
UIView *viewjt = [[UIView alloc] init];
[viewjt setBackgroundColor:[UIColor clearColor]];
[self addSubview:viewjt];
[viewjt mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
_viewjt = viewjt;
UILabel *lbtime = [[UILabel alloc] init];
[lbtime setText:@"00:00"];
[lbtime setTextColor:[UIColor whiteColor]];
[lbtime setTextAlignment:NSTextAlignmentCenter];
[lbtime setFont:[UIFont fontWithName:@"PingFangSC-Medium" size:18]];
[self addSubview:lbtime];
[lbtime mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.offset(KMagrinTop);
make.height.offset(40);
make.centerX.equalTo(self);
}];
[Tools startTimerWithStartTime:1000 isCountDown:YES result:^(NSInteger tag) {
NSInteger temp = 1000-tag;
lbtime.text = [self getSecTime:temp];
}];
float fjjj = (UISCREEN_WIDTH-72-72*3)/2.0;
NSArray *arr = @[@"麦克风已开",@"挂断",@"扬声器已关"];
for(int i = 0 ; i < arr.count; i++)
{
UIButton *btitem = [[UIButton alloc] init];
[btitem setImage:[UIImage imageNamed:[NSString stringWithFormat:@"spth_%@",arr[i]]] forState:UIControlStateNormal];
if(i==0)
{
[btitem setImage:[UIImage imageNamed:[NSString stringWithFormat:@"spth_%@_大",arr[i]]] forState:UIControlStateNormal];
}
[btitem setTitle:arr[i] forState:UIControlStateNormal];
[btitem setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btitem.titleLabel setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:14]];
[viewjt addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(40+(64+fjjj)*i);
make.width.offset(72);
make.height.offset(100);
make.bottom.equalTo(viewjt).offset(-TabHeight);
}];
[btitem setIconInTopWithSpacing:8];
if(i==1)
{
[btitem setTag:0];
}
else
{
[btitem setTag:i+4];
}
[btitem addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
}
[self.viewwjt removeFromSuperview];
}
///
-(void)drawWeiJieTing
{
UIView *viewwjt = [[UIView alloc] init];
[viewwjt setBackgroundColor:[UIColor clearColor]];
[self addSubview:viewwjt];
[viewwjt mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self);
}];
_viewwjt = viewwjt;
UILabel *lbstate = [[UILabel alloc] init];
[lbstate setText:@"连接中"];
[lbstate setTextColor:RGBACOLOR(255, 255, 255, 0.6)];
[lbstate setTextAlignment:NSTextAlignmentLeft];
[lbstate setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:16]];
[viewwjt addSubview:lbstate];
[lbstate mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(viewwjt);
make.centerX.equalTo(viewwjt);
}];
UIButton *btgd = [[UIButton alloc] init];
[btgd setImage:[UIImage imageNamed:@"spth_挂断"] forState:UIControlStateNormal];
[btgd setTitle:@"拒绝" forState:UIControlStateNormal];
[btgd setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btgd.titleLabel setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:14]];
[viewwjt addSubview:btgd];
[btgd mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(60);
make.width.offset(72);
make.height.offset(100);
make.bottom.equalTo(viewwjt).offset(-TabHeight);
}];
[btgd setIconInTopWithSpacing:8];
[btgd setTag:0];
[btgd addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
UIButton *btjt = [[UIButton alloc] init];
[btjt setImage:[UIImage imageNamed:@"spth_接听"] forState:UIControlStateNormal];
[viewwjt addSubview:btjt];
[btjt mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(viewwjt).offset(-60);
make.width.height.bottom.equalTo(btgd);
}];
[btjt setTitle:@"接听" forState:UIControlStateNormal];
[btjt setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btjt.titleLabel setFont:[UIFont fontWithName:@"PingFangSC-Regular" size:14]];
[btjt setTag:1];
[btjt setIconInTopWithSpacing:8];
[btjt addTarget:self action:@selector(funcAction:) forControlEvents:UIControlEventTouchUpInside];
}
-(void)funcAction:(UIButton *)sender
{
switch (sender.tag) {
case 0:
{///
///
DuanXinShowMainHomeView *view = [[DuanXinShowMainHomeView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
[self.superview addSubview:view];
[self removeFromSuperview];
}
break;
case 1:
{///
[self drawJieTing];
}
break;
default:
break;
}
}
-(NSString *)getSecTime:(NSInteger)itemp
{
NSString *strback = @"00:00";
if(itemp>0)
{
NSInteger ifen = itemp/60;
NSInteger imiao = itemp%60;
strback = [NSString stringWithFormat:@"%ld",ifen];
if(ifen<10)
{
strback = [NSString stringWithFormat:@"0%ld",ifen];
}
if(imiao<10)
{
strback = [NSString stringWithFormat:@"%@:0%ld",strback,imiao];
}
else
{
strback = [NSString stringWithFormat:@"%@:%ld",strback,imiao];
}
}
return strback;
}
@end

View File

@ -0,0 +1,16 @@
//
// YuYinDianHuaView.h
// ProductApp
//
// Created by 工作 on 2025/3/31.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface YuYinDianHuaView : UIView
@end
NS_ASSUME_NONNULL_END

View File

@ -0,0 +1,258 @@
//
// YuYinDianHuaView.m
// ProductApp
//
// Created by on 2025/3/31.
//
#import "YuYinDianHuaView.h"
#import "WYCamaImageTools.h"
#import "PickerAlterView.h"
#import "AlterSheetView.h"
#import "BaseViewController.h"
#import "MNHeiPeiView.h"
@interface YuYinDianHuaView ()<WYCamaImageToolsDelegate>
@property (nonatomic , strong) NSMutableArray *arrViews;
///
@property (nonatomic , strong) NSMutableArray *arrField;
///
@property (nonatomic , strong) UIImageView *imgvhd;
@property (nonatomic, strong) WYCamaImageTools *tools;
@end
@implementation YuYinDianHuaView
-(id)initWithFrame:(CGRect)frame
{
if(self = [super initWithFrame:frame])
{
self.arrViews = [NSMutableArray new];
self.arrField = [NSMutableArray new];
NSArray *arrtt = @[@"来电昵称",@"来电头像",@"延时语音"];
NSArray *arrpl = @[@"请输入昵称",@"请上传",@"请选择"];
UIView *viewlast = nil;
for(int i = 0 ; i < arrtt.count; i++)
{
UIView *viewitem = [[UIView alloc] init];
[viewitem setBackgroundColor:[UIColor whiteColor]];
[self addSubview:viewitem];
[viewitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.equalTo(self);
if(i==0)
{
make.top.offset(0);
}
else
{
make.top.equalTo(viewlast.mas_bottom);
}
make.height.offset(53);
}];
viewlast = viewitem;
[self.arrViews addObject:viewitem];
BOOL isselect = YES;
if(i==0)isselect=NO;
UITextField *field = [self drawItemView:viewitem andtitle:arrtt[i] isselect:isselect platch:arrpl[i] tag:i];
[self.arrField addObject:field];
if(i==1)
{
UIImageView *imgvhd = [[UIImageView alloc] init];
[imgvhd setImage:[UIImage imageNamed:@"my_nomohead"]];
[viewitem addSubview:imgvhd];
[imgvhd mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(viewitem).offset(-33);
make.centerY.equalTo(viewitem);
make.width.height.offset(58);
}];
[imgvhd.layer setMasksToBounds:YES];
[imgvhd.layer setCornerRadius:6];
_imgvhd = imgvhd;
[viewitem mas_updateConstraints:^(MASConstraintMaker *make) {
make.height.offset(86);
}];
}
else if (i==2)
{
field.text = @"3秒钟";
}
}
UIView *viewbottom = [[UIView alloc] init];
[viewbottom setBackgroundColor:[UIColor whiteColor]];
[self addSubview:viewbottom];
[viewbottom mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.bottom.equalTo(self);
make.height.offset(TabHeight+20);
}];
UIButton *btok = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH-32, 46)];
[btok setTitle:@"确定" forState:UIControlStateNormal];
[btok setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btok.titleLabel setFont:[UIFont systemFontOfSize:15]];
[btok.layer setMasksToBounds:YES];
[btok.layer setCornerRadius:23];
[viewbottom addSubview:btok];
[btok mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(16);
make.top.offset(9);
make.right.equalTo(viewbottom).offset(-16);
make.height.offset(46);
}];
[btok addTarget:self action:@selector(okAction) forControlEvents:UIControlEventTouchUpInside];
[Tools changedView:btok colors:@[(id)RGBCOLOR(119, 140, 245).CGColor,(id)RGBCOLOR(166, 121, 244).CGColor] startPoint:CGPointMake(0, 0) endPoint:CGPointMake(1, 0)];
}
return self;
}
-(UITextField *)drawItemView:(UIView *)view andtitle:(NSString *)title isselect:(BOOL)isselect platch:(NSString *)platch tag:(int)tag
{
float f_w = [Tools getWidthWithText:title height:20 font:15]+5;
UILabel *lbname = [[UILabel alloc] init];
[lbname setText:title];
[lbname setTextColor:RGBCOLOR(102, 102, 102)];
[lbname setTextAlignment:NSTextAlignmentLeft];
[lbname setFont:[UIFont systemFontOfSize:15]];
[view addSubview:lbname];
[lbname mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(15);
make.centerY.equalTo(view);
make.width.offset(f_w);
}];
UITextField *field = [[UITextField alloc] init];
[field setTextColor:RGBCOLOR(102, 102, 102)];
[field setTextAlignment:NSTextAlignmentRight];
[field setFont:[UIFont systemFontOfSize:15]];
[view addSubview:field];
[field mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(lbname.mas_right);
make.top.bottom.equalTo(view);
make.right.equalTo(view).offset(-15);
}];
[field setPlaceholder:platch];
if(isselect)
{
[field mas_updateConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view).offset(-33);
}];
UIImageView *imgvnext = [[UIImageView alloc] init];
[imgvnext setImage:[UIImage imageNamed:@"my_next"]];
[view addSubview:imgvnext];
[imgvnext mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view).offset(-9);
make.centerY.equalTo(view);
make.width.height.offset(20);
}];
UIButton *btitem = [[UIButton alloc] init];
[view addSubview:btitem];
[btitem mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.bottom.equalTo(field);
make.right.equalTo(view);
}];
[btitem setTag:tag];
[btitem addTarget:self action:@selector(itemAction:) forControlEvents:UIControlEventTouchUpInside];
}
UIView *viewline = [[UIView alloc] init];
[viewline setBackgroundColor:RGBCOLOR(238, 238, 238)];
[view addSubview:viewline];
[viewline mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(16);
make.bottom.equalTo(view);
make.right.equalTo(view).offset(-16);
make.height.offset(1);
}];
return field;
}
-(void)itemAction:(UIButton *)sender
{
[self endEditing:YES];
if(sender.tag==1)
{
self.tools.isvideo = NO;
self.tools.isedit = YES;
[AlterSheetView showAlterSheetTitle:@"" bts:@[@"随机获取",@"拍照",@"相册中选择"] buttomTitle:@"取消" otherBtsColor:RGBCOLOR(92, 117, 248) otherColorTitles:@[@"随机获取"] backValue:^(NSInteger tag) {
NSLog(@"%ld",tag);
if(tag==1)
{
}
else if(tag==2)
{
[self.tools choosePicWithViewController:self.viewController chooseType:ChooseTypeTakePic];
}
else if(tag==3)
{
[self.tools choosePicWithViewController:self.viewController chooseType:ChooseTypeAlbum];
}
}];
}
else if (sender.tag==2)
{
[PickerAlterView showPickers:@[@"3秒钟",@"10秒钟",@"30秒钟",@"1分钟",@"2分钟",@"3分钟",@"5分钟",@"10分钟",@"30分钟"] title:@"选择时间" backValue:^(NSString * _Nonnull strback) {
UITextField *field = self.arrField[2];
field.text = strback;
}];
}
}
-(void)okAction
{
UITextField *fieldname = self.arrField[0];
// if(fieldname.text.length==0)
// {
// [HXHud showMessage:@"请输入来电昵称" afterDelayType:0];
// return;
// }
// if(self.videourl==nil)
// {
// [HXHud showMessage:@"请选择来电视频" afterDelayType:0];
// return;
// }
UITextField *fieldtime = self.arrField[2];
NSString *strtime = fieldtime.text;
if([strtime containsString:@"秒钟"])
{
strtime=[strtime stringByReplacingOccurrencesOfString:@"秒钟" withString:@""];
}
else
{
strtime=[strtime stringByReplacingOccurrencesOfString:@"分钟" withString:@""];
strtime = [NSString stringWithFormat:@"%d",strtime.intValue*60];
}
[[UIApplication sharedApplication] setIdleTimerDisabled:YES];
BaseViewController *vc = (BaseViewController *)self.viewController;
[vc refShowStateBar:NO];
MNHeiPeiView *viewhp = [[MNHeiPeiView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH, UISCREEN_HEIGHT)];
[self.viewController.view addSubview:viewhp];
viewhp.time = strtime.intValue;
viewhp.imageHead = self.imgvhd.image;
viewhp.strname = fieldname.text;
viewhp.type = 3;
}
#pragma mark - WYCamaImageToolsDelegate
-(void)didEndChoosePic:(UIImage *)image
{
self.imgvhd.image = image;
}
- (WYCamaImageTools *)tools {
if (!_tools) {
_tools = [[WYCamaImageTools alloc] init];
_tools.delegate = self;
}return _tools;
}
@end