diff --git a/ProductApp/ProductApp.xcodeproj/project.pbxproj b/ProductApp/ProductApp.xcodeproj/project.pbxproj index 00467ad..7adf84e 100644 --- a/ProductApp/ProductApp.xcodeproj/project.pbxproj +++ b/ProductApp/ProductApp.xcodeproj/project.pbxproj @@ -91,6 +91,17 @@ CA487D952CA407F100AE773B /* D-DIN-PRO-700-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = CA487D942CA407F100AE773B /* D-DIN-PRO-700-Bold.otf */; }; CA487D982CA40A8300AE773B /* StartPayDaoJiShiView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA487D972CA40A8300AE773B /* StartPayDaoJiShiView.m */; }; CA487D9B2CA40D3A00AE773B /* StartPayGoodsPayView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA487D9A2CA40D3A00AE773B /* StartPayGoodsPayView.m */; }; + CA6B97122CBCAC14000213F3 /* FanWenListTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97112CBCAC14000213F3 /* FanWenListTableViewCell.m */; }; + CA6B97162CBCBCC1000213F3 /* FanWenDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97152CBCBCC1000213F3 /* FanWenDetailViewController.m */; }; + CA6B971A2CBCBD56000213F3 /* FanWenDetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97192CBCBD56000213F3 /* FanWenDetailView.m */; }; + CA6B971E2CBCC8C3000213F3 /* AIChatBottomView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B971D2CBCC8C3000213F3 /* AIChatBottomView.m */; }; + CA6B97222CBCEB56000213F3 /* AIChatArcView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97212CBCEB56000213F3 /* AIChatArcView.m */; }; + CA6B97252CBCEBE3000213F3 /* AIChatTextTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97242CBCEBE3000213F3 /* AIChatTextTableViewCell.m */; }; + CA6B97292CBD04FA000213F3 /* AIChatModel.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97282CBD04FA000213F3 /* AIChatModel.m */; }; + CA6B972C2CBD10FB000213F3 /* AIChatFunctionView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B972B2CBD10FB000213F3 /* AIChatFunctionView.m */; }; + CA6B97302CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B972F2CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.m */; }; + CA6B97342CBD1FA0000213F3 /* AIChaAnswerView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97332CBD1FA0000213F3 /* AIChaAnswerView.m */; }; + CA6B97372CBD2102000213F3 /* AIChaAnswerTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA6B97362CBD2102000213F3 /* AIChaAnswerTableViewCell.m */; }; CA8181882C9E58B100EE7E6E /* StartKTXZWenZhangViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA8181872C9E58B100EE7E6E /* StartKTXZWenZhangViewController.m */; }; CA81818B2C9E598300EE7E6E /* StartKTXZWenZhangView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA81818A2C9E598300EE7E6E /* StartKTXZWenZhangView.m */; }; CA81818E2C9E60B100EE7E6E /* ViewLable.m in Sources */ = {isa = PBXBuildFile; fileRef = CA81818D2C9E60B100EE7E6E /* ViewLable.m */; }; @@ -511,6 +522,28 @@ CA487D972CA40A8300AE773B /* StartPayDaoJiShiView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StartPayDaoJiShiView.m; sourceTree = ""; }; CA487D992CA40D3A00AE773B /* StartPayGoodsPayView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StartPayGoodsPayView.h; sourceTree = ""; }; CA487D9A2CA40D3A00AE773B /* StartPayGoodsPayView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StartPayGoodsPayView.m; sourceTree = ""; }; + CA6B97102CBCAC14000213F3 /* FanWenListTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FanWenListTableViewCell.h; sourceTree = ""; }; + CA6B97112CBCAC14000213F3 /* FanWenListTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FanWenListTableViewCell.m; sourceTree = ""; }; + CA6B97142CBCBCC1000213F3 /* FanWenDetailViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FanWenDetailViewController.h; sourceTree = ""; }; + CA6B97152CBCBCC1000213F3 /* FanWenDetailViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FanWenDetailViewController.m; sourceTree = ""; }; + CA6B97182CBCBD56000213F3 /* FanWenDetailView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FanWenDetailView.h; sourceTree = ""; }; + CA6B97192CBCBD56000213F3 /* FanWenDetailView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FanWenDetailView.m; sourceTree = ""; }; + CA6B971C2CBCC8C3000213F3 /* AIChatBottomView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChatBottomView.h; sourceTree = ""; }; + CA6B971D2CBCC8C3000213F3 /* AIChatBottomView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChatBottomView.m; sourceTree = ""; }; + CA6B97202CBCEB56000213F3 /* AIChatArcView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChatArcView.h; sourceTree = ""; }; + CA6B97212CBCEB56000213F3 /* AIChatArcView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChatArcView.m; sourceTree = ""; }; + CA6B97232CBCEBE3000213F3 /* AIChatTextTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChatTextTableViewCell.h; sourceTree = ""; }; + CA6B97242CBCEBE3000213F3 /* AIChatTextTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChatTextTableViewCell.m; sourceTree = ""; }; + CA6B97272CBD04FA000213F3 /* AIChatModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChatModel.h; sourceTree = ""; }; + CA6B97282CBD04FA000213F3 /* AIChatModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChatModel.m; sourceTree = ""; }; + CA6B972A2CBD10FB000213F3 /* AIChatFunctionView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChatFunctionView.h; sourceTree = ""; }; + CA6B972B2CBD10FB000213F3 /* AIChatFunctionView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChatFunctionView.m; sourceTree = ""; }; + CA6B972E2CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChatFunctionCollectionViewCell.h; sourceTree = ""; }; + CA6B972F2CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChatFunctionCollectionViewCell.m; sourceTree = ""; }; + CA6B97322CBD1FA0000213F3 /* AIChaAnswerView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChaAnswerView.h; sourceTree = ""; }; + CA6B97332CBD1FA0000213F3 /* AIChaAnswerView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChaAnswerView.m; sourceTree = ""; }; + CA6B97352CBD2102000213F3 /* AIChaAnswerTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIChaAnswerTableViewCell.h; sourceTree = ""; }; + CA6B97362CBD2102000213F3 /* AIChaAnswerTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AIChaAnswerTableViewCell.m; sourceTree = ""; }; CA8181862C9E58B100EE7E6E /* StartKTXZWenZhangViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StartKTXZWenZhangViewController.h; sourceTree = ""; }; CA8181872C9E58B100EE7E6E /* StartKTXZWenZhangViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StartKTXZWenZhangViewController.m; sourceTree = ""; }; CA8181892C9E598300EE7E6E /* StartKTXZWenZhangView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StartKTXZWenZhangView.h; sourceTree = ""; }; @@ -1638,6 +1671,87 @@ path = cell; sourceTree = ""; }; + CA6B970F2CBCAC01000213F3 /* cell */ = { + isa = PBXGroup; + children = ( + CA6B97102CBCAC14000213F3 /* FanWenListTableViewCell.h */, + CA6B97112CBCAC14000213F3 /* FanWenListTableViewCell.m */, + ); + path = cell; + sourceTree = ""; + }; + CA6B97132CBCBCA4000213F3 /* 详情 */ = { + isa = PBXGroup; + children = ( + CA6B97172CBCBD4C000213F3 /* view */, + CA6B97142CBCBCC1000213F3 /* FanWenDetailViewController.h */, + CA6B97152CBCBCC1000213F3 /* FanWenDetailViewController.m */, + ); + path = "详情"; + sourceTree = ""; + }; + CA6B97172CBCBD4C000213F3 /* view */ = { + isa = PBXGroup; + children = ( + CA6B97182CBCBD56000213F3 /* FanWenDetailView.h */, + CA6B97192CBCBD56000213F3 /* FanWenDetailView.m */, + ); + path = view; + sourceTree = ""; + }; + CA6B971B2CBCC8AE000213F3 /* view */ = { + isa = PBXGroup; + children = ( + CA6B971C2CBCC8C3000213F3 /* AIChatBottomView.h */, + CA6B971D2CBCC8C3000213F3 /* AIChatBottomView.m */, + ); + path = view; + sourceTree = ""; + }; + CA6B971F2CBCEA86000213F3 /* cell */ = { + isa = PBXGroup; + children = ( + CA6B97312CBD1F7F000213F3 /* 提问列表 */, + CA6B972D2CBD1197000213F3 /* 默认功能 */, + CA6B97202CBCEB56000213F3 /* AIChatArcView.h */, + CA6B97212CBCEB56000213F3 /* AIChatArcView.m */, + CA6B97232CBCEBE3000213F3 /* AIChatTextTableViewCell.h */, + CA6B97242CBCEBE3000213F3 /* AIChatTextTableViewCell.m */, + ); + path = cell; + sourceTree = ""; + }; + CA6B97262CBD04EF000213F3 /* model */ = { + isa = PBXGroup; + children = ( + CA6B97272CBD04FA000213F3 /* AIChatModel.h */, + CA6B97282CBD04FA000213F3 /* AIChatModel.m */, + ); + path = model; + sourceTree = ""; + }; + CA6B972D2CBD1197000213F3 /* 默认功能 */ = { + isa = PBXGroup; + children = ( + CA6B972A2CBD10FB000213F3 /* AIChatFunctionView.h */, + CA6B972B2CBD10FB000213F3 /* AIChatFunctionView.m */, + CA6B972E2CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.h */, + CA6B972F2CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.m */, + ); + path = "默认功能"; + sourceTree = ""; + }; + CA6B97312CBD1F7F000213F3 /* 提问列表 */ = { + isa = PBXGroup; + children = ( + CA6B97322CBD1FA0000213F3 /* AIChaAnswerView.h */, + CA6B97332CBD1FA0000213F3 /* AIChaAnswerView.m */, + CA6B97352CBD2102000213F3 /* AIChaAnswerTableViewCell.h */, + CA6B97362CBD2102000213F3 /* AIChaAnswerTableViewCell.m */, + ); + path = "提问列表"; + sourceTree = ""; + }; CA8181932C9E750900EE7E6E /* view */ = { isa = PBXGroup; children = ( @@ -1884,6 +1998,8 @@ CABA145B2C9D0AF7002CB3B1 /* 范文 */ = { isa = PBXGroup; children = ( + CA6B97132CBCBCA4000213F3 /* 详情 */, + CA6B970F2CBCAC01000213F3 /* cell */, CABA14622C9D0B25002CB3B1 /* FanWenViewController.h */, CABA14632C9D0B25002CB3B1 /* FanWenViewController.m */, CA0C3ABA2CB536F800E01A72 /* FanWenListViewController.h */, @@ -1895,6 +2011,9 @@ CABA145C2C9D0AFC002CB3B1 /* AIChart */ = { isa = PBXGroup; children = ( + CA6B97262CBD04EF000213F3 /* model */, + CA6B971F2CBCEA86000213F3 /* cell */, + CA6B971B2CBCC8AE000213F3 /* view */, CABA14652C9D0B31002CB3B1 /* AIChatViewController.h */, CABA14662C9D0B31002CB3B1 /* AIChatViewController.m */, ); @@ -3208,6 +3327,7 @@ CBD422C028DAF38900C32440 /* KAlterView.m in Sources */, CA0D08302CA4FBDB0086855E /* ShouYeXieZuoTableViewCell.m in Sources */, CABA14BB2C9D4330002CB3B1 /* PublicUploadImageManager.m in Sources */, + CA6B97292CBD04FA000213F3 /* AIChatModel.m in Sources */, CA0D08412CA52F800086855E /* ShouYeShenFenViewController.m in Sources */, CA4257AA2CA2A30C00A36A10 /* StartZNPPTYuLanViewController.m in Sources */, CB489F9D2744A0BD00DA044A /* AssistiveView.m in Sources */, @@ -3223,10 +3343,12 @@ CA4257A62CA29FE700A36A10 /* StartZNPPTDaGangAlterLoadView.m in Sources */, CA0C3A992CB4D4F500E01A72 /* ZhiNengXieZuoDuanLuoView.m in Sources */, CB489F942744A0BD00DA044A /* AreaprovinceListModel.m in Sources */, + CA6B971E2CBCC8C3000213F3 /* AIChatBottomView.m in Sources */, CA0C3A832CB4C27E00E01A72 /* HuanGeSiLuViewController.m in Sources */, CA0C3A962CB4D06600E01A72 /* ChongXieYiPianView.m in Sources */, CABA14B02C9D4318002CB3B1 /* UserAccountModel.m in Sources */, CA4257982CA2914100A36A10 /* StartZNPPTHUDAlter.m in Sources */, + CA6B97222CBCEB56000213F3 /* AIChatArcView.m in Sources */, CB489F7C2744A0BD00DA044A /* RSAEncrypt.m in Sources */, CB489F6B2744A0BD00DA044A /* LJsignView.m in Sources */, CB489F622744A0BD00DA044A /* MDBwebVIew.m in Sources */, @@ -3245,10 +3367,12 @@ CA11ED7D2CA6B0DE00209DFC /* XieZuoFenXiangAlterView.m in Sources */, CAC806732CA171ED00C21AA7 /* StartPZXZPageView.m in Sources */, CABA14B72C9D4318002CB3B1 /* UserUploadModel.m in Sources */, + CA6B971A2CBCBD56000213F3 /* FanWenDetailView.m in Sources */, CB489FB22744A0BD00DA044A /* FSActionSheetItem.m in Sources */, CA0C3AA52CB4DED200E01A72 /* DuanLuoXieZuoCellView.m in Sources */, CA4257AE2CA2AF3600A36A10 /* StartZNPPTYuLanTableViewCell.m in Sources */, CA0D08362CA501710086855E /* ShouYeToolsTableViewCell.m in Sources */, + CA6B97372CBD2102000213F3 /* AIChaAnswerTableViewCell.m in Sources */, CB489F4B2744A0BD00DA044A /* PGGDatePickView.m in Sources */, CB489FB72744A0BD00DA044A /* UIAlertController+Blocks.m in Sources */, CABA14612C9D0B1C002CB3B1 /* ShouYeViewController.m in Sources */, @@ -3283,6 +3407,7 @@ CB489F7A2744A0BD00DA044A /* FSTextView.m in Sources */, CAC8065C2CA1449E00C21AA7 /* StartZNXZKeysViewController.m in Sources */, CAB0D3872CAA5693009BF67D /* TiCaiAlterTableViewCell.m in Sources */, + CA6B97342CBD1FA0000213F3 /* AIChaAnswerView.m in Sources */, CA0FD6A42CA8FF5C009A4417 /* FXWDPFView.m in Sources */, CABA14B32C9D4318002CB3B1 /* UserConfigModel.m in Sources */, CA8181992C9E77FB00EE7E6E /* DownJDLoadView.m in Sources */, @@ -3331,6 +3456,7 @@ CABA14712C9D0D4E002CB3B1 /* StartViewController.m in Sources */, CABA14892C9D2AE2002CB3B1 /* StartGNTiShiView.m in Sources */, CB489F8E2744A0BD00DA044A /* UITextFieldYS.m in Sources */, + CA6B97302CBD11B1000213F3 /* AIChatFunctionCollectionViewCell.m in Sources */, CB489F922744A0BD00DA044A /* IndexGetNewsModel.m in Sources */, CAC806522CA137E600C21AA7 /* StartZNXZViewController.m in Sources */, CAA600DD2CA95B0200026CF4 /* KeTangXieZuoNJTableViewCell.m in Sources */, @@ -3373,6 +3499,7 @@ CB489F972744A0BD00DA044A /* WkWebviewViewController.m in Sources */, CB489F692744A0BD00DA044A /* CalendarDataDays.m in Sources */, CB489F932744A0BD00DA044A /* PutImageModel.m in Sources */, + CA6B97252CBCEBE3000213F3 /* AIChatTextTableViewCell.m in Sources */, CA11ED5D2CA653F600209DFC /* CamreImagesView.m in Sources */, CA0FD6A02CA8FA88009A4417 /* FenXiangHaiBaoInfoSuperItemView.m in Sources */, CAB0F36A2CAA9255003B0C39 /* FenXiangWenZhangAlterView.m in Sources */, @@ -3389,6 +3516,7 @@ CABA14D92C9D5071002CB3B1 /* PageControlView.m in Sources */, CA4257852CA24E1100A36A10 /* StartPZXZDetailViewController.m in Sources */, CB489FA52744A0BD00DA044A /* ZJSegmentStyle.m in Sources */, + CA6B97122CBCAC14000213F3 /* FanWenListTableViewCell.m in Sources */, CA0D08672CA548E50086855E /* ShouYeLiShiJiLuXZTableViewController.m in Sources */, CABA147F2C9D19A0002CB3B1 /* TextCollectionViewCell.m in Sources */, CA487D982CA40A8300AE773B /* StartPayDaoJiShiView.m in Sources */, @@ -3402,6 +3530,7 @@ CABA14D12C9D4961002CB3B1 /* StartGNView.m in Sources */, CB489FA82744A0BD00DA044A /* XLProgressView.m in Sources */, CA8181AD2C9EB95700EE7E6E /* StartKTXZPGDetailZHView.m in Sources */, + CA6B97162CBCBCC1000213F3 /* FanWenDetailViewController.m in Sources */, CB489F802744A0BD00DA044A /* NSString+Base64.m in Sources */, CA0D08572CA543440086855E /* ShouYeLSKTPGTableViewCell.m in Sources */, CB489FD82744A30000DA044A /* PGGMovieLineSetView.m in Sources */, @@ -3438,6 +3567,7 @@ CA0C3A922CB4D03B00E01A72 /* ChongXieYiPianViewController.m in Sources */, CB489F702744A0BD00DA044A /* TabBarController.m in Sources */, CA11ED702CA6946500209DFC /* KaiTongAlterTQView.m in Sources */, + CA6B972C2CBD10FB000213F3 /* AIChatFunctionView.m in Sources */, CAB0D3712CAA3DAE009BF67D /* KeTangXieZuoXiangQingView.m in Sources */, CABA14CE2C9D4395002CB3B1 /* MIUAES.m in Sources */, CA0FD69A2CA8F6DE009A4417 /* FenXiangHaiBaoView.m in Sources */, diff --git a/ProductApp/ProductApp.xcworkspace/xcuserdata/gongzuo.xcuserdatad/UserInterfaceState.xcuserstate b/ProductApp/ProductApp.xcworkspace/xcuserdata/gongzuo.xcuserdatad/UserInterfaceState.xcuserstate index d904309..c7b898a 100644 Binary files a/ProductApp/ProductApp.xcworkspace/xcuserdata/gongzuo.xcuserdatad/UserInterfaceState.xcuserstate and b/ProductApp/ProductApp.xcworkspace/xcuserdata/gongzuo.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/Contents.json new file mode 100644 index 0000000..f60e7d8 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_bg@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_bg@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/ai_bg@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/ai_bg@2x.png new file mode 100644 index 0000000..30b647b Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/ai_bg@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/ai_bg@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/ai_bg@3x.png new file mode 100644 index 0000000..3df4443 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_bg.imageset/ai_bg@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/Contents.json new file mode 100644 index 0000000..49dee21 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_cell_item_next@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_cell_item_next@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/ai_cell_item_next@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/ai_cell_item_next@2x.png new file mode 100644 index 0000000..3d96dba Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/ai_cell_item_next@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/ai_cell_item_next@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/ai_cell_item_next@3x.png new file mode 100644 index 0000000..39312ba Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_cell_item_next.imageset/ai_cell_item_next@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/Contents.json new file mode 100644 index 0000000..6e6946b --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "键盘输入法 1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "键盘输入法.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/键盘输入法 1.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/键盘输入法 1.png new file mode 100644 index 0000000..0b72969 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/键盘输入法 1.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/键盘输入法.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/键盘输入法.png new file mode 100644 index 0000000..8a90b99 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_jianpan.imageset/键盘输入法.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/Contents.json new file mode 100644 index 0000000..483408b --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_send@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_send@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/ai_send@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/ai_send@2x.png new file mode 100644 index 0000000..a69f6a3 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/ai_send@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/ai_send@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/ai_send@3x.png new file mode 100644 index 0000000..9b70a75 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_send.imageset/ai_send@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/Contents.json new file mode 100644 index 0000000..625a600 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_yuyin@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_yuyin@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/ai_yuyin@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/ai_yuyin@2x.png new file mode 100644 index 0000000..0f7aa1c Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/ai_yuyin@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/ai_yuyin@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/ai_yuyin@3x.png new file mode 100644 index 0000000..74e19af Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyin.imageset/ai_yuyin@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/Contents.json new file mode 100644 index 0000000..26927eb --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_yuyincell@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_yuyincell@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/ai_yuyincell@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/ai_yuyincell@2x.png new file mode 100644 index 0000000..282b381 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/ai_yuyincell@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/ai_yuyincell@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/ai_yuyincell@3x.png new file mode 100644 index 0000000..edaf29f Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_yuyincell.imageset/ai_yuyincell@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/Contents.json new file mode 100644 index 0000000..2d3af49 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_作文开头@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_作文开头@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/ai_作文开头@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/ai_作文开头@2x.png new file mode 100644 index 0000000..73e2316 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/ai_作文开头@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/ai_作文开头@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/ai_作文开头@3x.png new file mode 100644 index 0000000..03dee8d Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文开头.imageset/ai_作文开头@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/Contents.json new file mode 100644 index 0000000..9690410 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_作文框架@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_作文框架@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/ai_作文框架@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/ai_作文框架@2x.png new file mode 100644 index 0000000..5952486 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/ai_作文框架@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/ai_作文框架@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/ai_作文框架@3x.png new file mode 100644 index 0000000..2ba7e53 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_作文框架.imageset/ai_作文框架@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/Contents.json new file mode 100644 index 0000000..de1f4fd --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_写作技巧@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_写作技巧@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/ai_写作技巧@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/ai_写作技巧@2x.png new file mode 100644 index 0000000..098b09d Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/ai_写作技巧@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/ai_写作技巧@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/ai_写作技巧@3x.png new file mode 100644 index 0000000..fa911a1 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作技巧.imageset/ai_写作技巧@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/Contents.json new file mode 100644 index 0000000..a6d9551 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_写作灵感@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_写作灵感@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/ai_写作灵感@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/ai_写作灵感@2x.png new file mode 100644 index 0000000..d43b10b Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/ai_写作灵感@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/ai_写作灵感@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/ai_写作灵感@3x.png new file mode 100644 index 0000000..b56a4da Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_写作灵感.imageset/ai_写作灵感@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/Contents.json new file mode 100644 index 0000000..a1e1c83 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_诗句名言@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_诗句名言@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/ai_诗句名言@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/ai_诗句名言@2x.png new file mode 100644 index 0000000..8e4a69b Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/ai_诗句名言@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/ai_诗句名言@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/ai_诗句名言@3x.png new file mode 100644 index 0000000..6802a42 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_诗句名言.imageset/ai_诗句名言@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/Contents.json new file mode 100644 index 0000000..5272db3 --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ai_语句扩写@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ai_语句扩写@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/ai_语句扩写@2x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/ai_语句扩写@2x.png new file mode 100644 index 0000000..f001568 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/ai_语句扩写@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/ai_语句扩写@3x.png b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/ai_语句扩写@3x.png new file mode 100644 index 0000000..9de4b09 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/聊天/ai_语句扩写.imageset/ai_语句扩写@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/Contents.json new file mode 100644 index 0000000..529beaf --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/Contents.json @@ -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 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/文件未找到@2x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/文件未找到@2x.png new file mode 100644 index 0000000..25a73fd Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/文件未找到@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/文件未找到@3x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/文件未找到@3x.png new file mode 100644 index 0000000..f4eb96e Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_noinfo.imageset/文件未找到@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/Contents.json new file mode 100644 index 0000000..e58e7fa --- /dev/null +++ b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "星形 7@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "星形 7@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/星形 7@2x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/星形 7@2x.png new file mode 100644 index 0000000..a211268 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/星形 7@2x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/星形 7@3x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/星形 7@3x.png new file mode 100644 index 0000000..1c83ae7 Binary files /dev/null and b/ProductApp/ProductApp/Assets.xcassets/范文/fanwen_xin.imageset/星形 7@3x.png differ diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/矩形 18114.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/范文/fw_cellback.imageset/Contents.json similarity index 100% rename from ProductApp/ProductApp/Assets.xcassets/范文/矩形 18114.imageset/Contents.json rename to ProductApp/ProductApp/Assets.xcassets/范文/fw_cellback.imageset/Contents.json diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/矩形 18114.imageset/矩形 18114@2x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fw_cellback.imageset/矩形 18114@2x.png similarity index 100% rename from ProductApp/ProductApp/Assets.xcassets/范文/矩形 18114.imageset/矩形 18114@2x.png rename to ProductApp/ProductApp/Assets.xcassets/范文/fw_cellback.imageset/矩形 18114@2x.png diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/矩形 18114.imageset/矩形 18114@3x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fw_cellback.imageset/矩形 18114@3x.png similarity index 100% rename from ProductApp/ProductApp/Assets.xcassets/范文/矩形 18114.imageset/矩形 18114@3x.png rename to ProductApp/ProductApp/Assets.xcassets/范文/fw_cellback.imageset/矩形 18114@3x.png diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/容器 29.imageset/Contents.json b/ProductApp/ProductApp/Assets.xcassets/范文/fw_next.imageset/Contents.json similarity index 100% rename from ProductApp/ProductApp/Assets.xcassets/范文/容器 29.imageset/Contents.json rename to ProductApp/ProductApp/Assets.xcassets/范文/fw_next.imageset/Contents.json diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/容器 29.imageset/容器 29@2x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fw_next.imageset/容器 29@2x.png similarity index 100% rename from ProductApp/ProductApp/Assets.xcassets/范文/容器 29.imageset/容器 29@2x.png rename to ProductApp/ProductApp/Assets.xcassets/范文/fw_next.imageset/容器 29@2x.png diff --git a/ProductApp/ProductApp/Assets.xcassets/范文/容器 29.imageset/容器 29@3x.png b/ProductApp/ProductApp/Assets.xcassets/范文/fw_next.imageset/容器 29@3x.png similarity index 100% rename from ProductApp/ProductApp/Assets.xcassets/范文/容器 29.imageset/容器 29@3x.png rename to ProductApp/ProductApp/Assets.xcassets/范文/fw_next.imageset/容器 29@3x.png diff --git a/ProductApp/ProductApp/BaseControl/Category/FSTextView/FSTextView.m b/ProductApp/ProductApp/BaseControl/Category/FSTextView/FSTextView.m index 0073b46..9f6c5c9 100755 --- a/ProductApp/ProductApp/BaseControl/Category/FSTextView/FSTextView.m +++ b/ProductApp/ProductApp/BaseControl/Category/FSTextView/FSTextView.m @@ -1,8 +1,8 @@ #import "FSTextView.h" -CGFloat const kFSTextViewPlaceholderVerticalMargin = 8.0; ///< placeholder垂直方向边距 -CGFloat const kFSTextViewPlaceholderHorizontalMargin = 6.0; ///< placeholder水平方向边距 +CGFloat const kFSTextViewPlaceholderVerticalMargin = 10.0; ///< placeholder垂直方向边距 +CGFloat const kFSTextViewPlaceholderHorizontalMargin = 12.0; ///< placeholder水平方向边距 @interface FSTextView () diff --git a/ProductApp/ProductApp/Other/ViewLable.h b/ProductApp/ProductApp/Other/ViewLable.h index bedb914..b9a9767 100644 --- a/ProductApp/ProductApp/Other/ViewLable.h +++ b/ProductApp/ProductApp/Other/ViewLable.h @@ -18,6 +18,8 @@ typedef void(^ViewLableBackHeight)(float fheight,BOOL isend); @property (nonatomic , strong) UIFont *textFont; ///1个字需要多少s @property (nonatomic , assign) float fspeed; +///是否关闭动画写入 +@property (nonatomic , assign) BOOL isCloseAnimation; /// @property (nonatomic , strong) ViewLableBackHeight backHeight; diff --git a/ProductApp/ProductApp/Other/ViewLable.m b/ProductApp/ProductApp/Other/ViewLable.m index 6beccbb..c800cb0 100644 --- a/ProductApp/ProductApp/Other/ViewLable.m +++ b/ProductApp/ProductApp/Other/ViewLable.m @@ -77,7 +77,34 @@ -(void)setStrValue:(NSString *)strValue { _strValue = strValue; - [self showText]; + if(self.isCloseAnimation) + { + [self.imgvb setHidden:YES]; + + NSString *str = self.strValue; + ///行间距 + NSMutableParagraphStyle *style = [NSMutableParagraphStyle new]; + style.lineSpacing = 5; + style.lineBreakMode = NSLineBreakByWordWrapping; + style.alignment = NSTextAlignmentLeft; + + NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:str]; + [attrString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, str.length)]; + + self.lbname.attributedText = attrString; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + float fheight = [Tools getLabelHeightWithText:self.lbname.text width:self.width font:self.lbname.font.pointSize linHeight:5]+1; + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(fheight); + }]; + self.backHeight(fheight,NO); + }); + } + else + { + [self showText]; + } } -(void)showText { diff --git a/ProductApp/ProductApp/ProductMain/AIChart/AIChatViewController.m b/ProductApp/ProductApp/ProductMain/AIChart/AIChatViewController.m index 511ab6a..8d92406 100644 --- a/ProductApp/ProductApp/ProductMain/AIChart/AIChatViewController.m +++ b/ProductApp/ProductApp/ProductMain/AIChart/AIChatViewController.m @@ -6,26 +6,181 @@ // #import "AIChatViewController.h" +#import "AIChatBottomView.h" +#import "AIChatTextTableViewCell.h" -@interface AIChatViewController () + + +@interface AIChatViewController () +/// +@property (nonatomic , strong) UITableView *tableView; +/// +@property (nonatomic , strong) NSMutableArray *arrdata; @end @implementation AIChatViewController - +-(UIStatusBarStyle)preferredStatusBarStyle { + return UIStatusBarStyleDefault; +} +-(void)viewWillAppear:(BOOL)animated +{ + [super viewWillAppear:animated]; +} - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view. + [self.navigationController setNavigationBarHidden:YES animated:NO]; + [self showNaviGationView:YES]; + [self.navigationView setTitle:@"" titleColor:RGBCOLOR(60, 60, 60)]; + [self.navigationView setBackgroundColor:[UIColor clearColor]]; + [self.view setBackgroundColor:RGBCOLOR(249, 249, 249)]; + + UIImageView *imgvback = [[UIImageView alloc] init]; + [imgvback setImage:[UIImage imageNamed:@"ai_bg"]]; + [self.view addSubview:imgvback]; + [imgvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.equalTo(self.view); + }]; + [self.view sendSubviewToBack:imgvback]; + + UIView *viewback = [[UIView alloc] init]; + [self.view addSubview:viewback]; + [viewback mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.width.equalTo(self.view); + make.top.offset(KMagrinTop); + make.height.equalTo(self.view).offset(-KMagrinTop); + }]; + + AIChatBottomView *viewbottom = [[AIChatBottomView alloc] init]; + [viewbottom setBackgroundColor:[UIColor whiteColor]]; + [viewback addSubview:viewbottom]; + [viewbottom mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.bottom.width.equalTo(viewback); + }]; + + UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; + [tableView setBackgroundColor:[UIColor clearColor]]; + [tableView setDelegate:self]; + [tableView setDataSource:self]; + [viewback addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.width.equalTo(viewback); + make.bottom.equalTo(viewbottom.mas_top); + }]; + _tableView = tableView; + + [self getData]; } -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. +-(void)getData +{ + self.arrdata = [NSMutableArray new]; + AIChatModel *model = [AIChatModel new]; + model.messageType = 0; + model.text = @"你好,我是你的AI助手,有什么写作方面的问题都可以问我,你看需要我在哪些方面帮助你呢?"; + model.isAnimation = NO; + [self.arrdata addObject:model]; + + + AIChatModel *model1 = [AIChatModel new]; + model1.messageType = 0; + model1.text = @"你好,我是你的AI助手"; + model1.isAnimation = NO; + [self.arrdata addObject:model1]; + + AIChatModel *model2 = [AIChatModel new]; + model2.messageType = 2; + model2.text = @""; + model2.arrfunction = @[@"写作灵感",@"作文框架",@"语句扩写",@"作文开头",@"写作技巧",@"诗句名言"]; + model2.isAnimation = NO; + [self.arrdata addObject:model2]; + + AIChatModel *model3 = [AIChatModel new]; + model3.messageType = 1; + model3.text = @"你好,我是你的AI助手"; + model3.isAnimation = NO; + model3.ismy = YES; + [self.arrdata addObject:model3]; + + + AIChatModel *model4 = [AIChatModel new]; + model4.messageType = 3; + model4.text = @"你对写作灵感有疑问,请参考以下方式向我提问:"; + model4.arrfunction = @[@"介绍一种事物的创作灵感",@"记一次游戏的写作灵感",@"如何从电影中获得写作启示"]; + model4.isAnimation = NO; + [self.arrdata addObject:model4]; + + [self.tableView reloadData]; } -*/ + +#pragma mark - UITableView +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return self.arrdata.count; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *strcell = @"AIChatTextTableViewCell"; + AIChatTextTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:strcell]; + if(!cell) + { + cell = [[AIChatTextTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:strcell]; + [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; + [cell setBackgroundColor:[UIColor clearColor]]; + } + cell.model = self.arrdata[indexPath.row]; + + return cell; +} +-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section +{ + return 0.01; +} +-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section +{ + return 0.01; +} +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + AIChatModel *model = self.arrdata[indexPath.row]; + if(model.messageType==2)return 200; + + if(model.height>0) + { + return model.height; + } + float fheight = 55; + + NSString *strtext = model.text; + if(model.messageType==1) + {///语音 + strtext = [NSString stringWithFormat:@" %@",model.text]; + } + else if (model.messageType==3) + {///问题 + fheight = [Tools getLabelHeightWithText:model.text width:UISCREEN_WIDTH-80 font:14 linHeight:0]+1; + fheight+=model.arrfunction.count*47+35; + return fheight; + } + if([Tools getWidthWithText:strtext height:20 font:14]>UISCREEN_WIDTH-80) + { + fheight = [Tools getLabelHeightWithText:strtext width:UISCREEN_WIDTH-80 font:14 linHeight:5]+38; + } + return fheight; +} +-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section +{ + return [UIView new]; +} +-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section +{ + return [UIView new]; +} +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + +} + @end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatArcView.h b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatArcView.h new file mode 100644 index 0000000..6728494 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatArcView.h @@ -0,0 +1,17 @@ +// +// AIChatArcView.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChatArcView : UIView +///0left 1right +@property (nonatomic , assign) int type; +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatArcView.m b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatArcView.m new file mode 100644 index 0000000..23f5c43 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatArcView.m @@ -0,0 +1,86 @@ +// +// AIChatArcView.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChatArcView.h" + +@implementation AIChatArcView + +- (void)drawRect:(CGRect)rect +{ + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetLineWidth(context, 2.0); + if(self.type==1) + { + CGContextSetFillColorWithColor(context, RGBCOLOR(108, 119, 246).CGColor); + } + else + { + CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor); + } + + + [self getDrawPath:context]; + + CGContextFillPath(context); +} +-(void)getDrawPath:(CGContextRef)context{ + + CGRect rrect = self.bounds; + + CGFloat radius = 20.0; + + CGFloat minx = CGRectGetMinX(rrect)+10, + + maxx = CGRectGetMaxX(rrect); + if(self.type==1) + { + minx = CGRectGetMinX(rrect); + maxx = CGRectGetMaxX(rrect)-10; + } + + CGFloat miny = CGRectGetMinY(rrect), + + maxy = CGRectGetMaxY(rrect); + + if(self.type==1) + { + CGContextMoveToPoint(context, maxx+10, miny); + CGContextAddArcToPoint(context, maxx, miny, minx, miny, radius); + + CGContextAddArcToPoint(context, minx, miny, minx, maxy, radius); + + CGContextAddArcToPoint(context, minx, maxy, maxx, maxy, radius); + + CGContextAddArcToPoint(context, maxx, maxy, maxx, miny+10, radius); + + CGContextAddArcToPoint(context, maxx, miny+10, maxx+10, miny, 2); + + CGContextAddArcToPoint(context, maxx+10, miny, maxx, miny, 2); + } + else + { + CGContextMoveToPoint(context, minx-10, miny); + + CGContextAddArcToPoint(context, minx, miny, maxx, miny, radius); + + CGContextAddArcToPoint(context, maxx, miny, maxx, maxy, radius); + + CGContextAddArcToPoint(context, maxx, maxy, minx, maxy, radius); + + CGContextAddArcToPoint(context, minx, maxy, minx, miny+10, radius); + + + CGContextAddArcToPoint(context, minx, miny+10, minx-10, miny, 2); + + CGContextAddArcToPoint(context, minx-10, miny, minx, miny, 2); + } + + + CGContextClosePath(context); + +} +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatTextTableViewCell.h b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatTextTableViewCell.h new file mode 100644 index 0000000..eb73677 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatTextTableViewCell.h @@ -0,0 +1,17 @@ +// +// AIChatTextTableViewCell.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import +#import "AIChatModel.h" +NS_ASSUME_NONNULL_BEGIN + +@interface AIChatTextTableViewCell : UITableViewCell +/// +@property (nonatomic , strong) AIChatModel *model; +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatTextTableViewCell.m b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatTextTableViewCell.m new file mode 100644 index 0000000..f038ead --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/AIChatTextTableViewCell.m @@ -0,0 +1,250 @@ +// +// AIChatTextTableViewCell.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChatTextTableViewCell.h" +#import "AIChatArcView.h" +#import "AIChatFunctionView.h" +#import "AIChaAnswerView.h" + +@interface AIChatTextTableViewCell () +/// +@property (nonatomic , strong) AIChatArcView *viewinfoLeft; +/// +@property (nonatomic , strong) ViewLable *lbvalueLeft ; + +/// +@property (nonatomic , strong) AIChatFunctionView *functionView; + +///问题列表 +@property (nonatomic , strong) AIChaAnswerView *answerView; + +@property (nonatomic , strong) AIChatArcView *viewinforight; +/// +@property (nonatomic , strong) ViewLable *lbvalueright ; +/// +@property (nonatomic , strong) UIButton *btyuyin ; + +@end + +@implementation AIChatTextTableViewCell + +-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier +{ + if(self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) + { + UIView *viewback = [[UIView alloc] init]; + [self.contentView addSubview:viewback]; + [viewback mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + AIChatFunctionView *functionView = [[AIChatFunctionView alloc] init]; + [functionView setBackgroundColor:[UIColor whiteColor]]; + [viewback addSubview:functionView]; + [functionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(20); + make.right.equalTo(viewback).offset(-20); + make.top.offset(15); + make.bottom.equalTo(viewback); + }]; + [functionView.layer setMasksToBounds:YES]; + [functionView.layer setCornerRadius:20]; + [functionView setHidden:YES]; + _functionView = functionView; + + AIChatArcView *viewinfoLeft = [AIChatArcView new]; + [viewinfoLeft setBackgroundColor:[UIColor clearColor]]; + [viewback addSubview:viewinfoLeft]; + [viewinfoLeft mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.offset(15); + make.left.offset(20); + make.height.offset(40); + make.width.offset(UISCREEN_WIDTH-40); + }]; + viewinfoLeft.type = 0; + _viewinfoLeft = viewinfoLeft; + + + AIChaAnswerView *answerView = [AIChaAnswerView new]; + [viewinfoLeft addSubview:answerView]; + [answerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(25); + make.top.offset(10); + make.right.equalTo(viewinfoLeft).offset(-15); + make.height.offset(10); + }]; + [answerView setHidden:YES]; + _answerView = answerView; + + ViewLable *lbvalueLeft = [[ViewLable alloc] init]; + [lbvalueLeft setTextColor:RGBCOLOR(51, 51, 51)]; + [lbvalueLeft setTextFont:[UIFont systemFontOfSize:14]]; + [viewinfoLeft addSubview:lbvalueLeft]; + [lbvalueLeft mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(25); + make.top.offset(10); + make.right.equalTo(viewinfoLeft).offset(-15); + make.height.offset(10); + }]; + lbvalueLeft.isCloseAnimation = YES; + [lbvalueLeft setBackHeight:^(float fheight, BOOL isend) { + [self.viewinfoLeft mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(fheight+20); + }]; + [self.viewinfoLeft setNeedsDisplay]; + if(isend) + { + self.model.height = fheight+35; + } + }]; + _lbvalueLeft = lbvalueLeft; + + AIChatArcView *viewinforight = [AIChatArcView new]; + [viewinforight setBackgroundColor:[UIColor clearColor]]; + [viewback addSubview:viewinforight]; + [viewinforight mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.offset(15); + make.right.equalTo(self).offset(-20); + make.height.offset(30); + make.width.offset(UISCREEN_WIDTH-40); + }]; + viewinforight.type = 1; + [viewinforight setHidden:YES]; + _viewinforight = viewinforight; + + ViewLable *lbvalueright = [[ViewLable alloc] init]; + [lbvalueright setTextColor:[UIColor whiteColor]]; + [lbvalueright setTextFont:[UIFont systemFontOfSize:14]]; + [viewinforight addSubview:lbvalueright]; + [lbvalueright mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(15); + make.top.offset(10); + make.right.equalTo(viewinforight).offset(-25); + make.height.offset(10); + }]; + lbvalueright.isCloseAnimation = YES; + [lbvalueright setBackHeight:^(float fheight, BOOL isend) { + [self.viewinforight mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(fheight+20); + }]; + + [self.viewinforight setNeedsDisplay]; + if(isend) + { + self.model.height = fheight+35; + } + + }]; + _lbvalueright = lbvalueright; + + UIButton *btyuyin = [[UIButton alloc] init]; + [btyuyin setImage:[UIImage imageNamed:@"ai_yuyincell"] forState:UIControlStateNormal]; + [viewinforight addSubview:btyuyin]; + [btyuyin mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(lbvalueright); + make.height.offset(25); + make.width.offset(25); + make.top.offset(5); + }]; + [btyuyin addTarget:self action:@selector(yuyinAction) forControlEvents:UIControlEventTouchUpInside]; + _btyuyin = btyuyin; + + } + return self; +} + +-(void)yuyinAction +{ + +} + +-(void)setModel:(AIChatModel *)model +{ + _model = model; + [self.functionView setHidden:YES]; + if(model.ismy) + { + [self.viewinfoLeft setHidden:YES]; + [self.viewinforight setHidden:NO]; + [self.btyuyin setHidden:YES]; + NSString *strtext = model.text; + if(model.messageType==1) + {///语音 + [self.btyuyin setHidden:NO]; + strtext = [NSString stringWithFormat:@" %@",model.text]; + } + + float f_width = [Tools getWidthWithText:strtext height:20 font:14]+41; + if(f_width>UISCREEN_WIDTH-40) + { + f_width = UISCREEN_WIDTH-40; + } + [self.viewinforight mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.offset(f_width); + }]; + + self.lbvalueright.isCloseAnimation = !model.isAnimation; + self.lbvalueright.strValue = strtext; + + } + else + { + [self.viewinfoLeft setHidden:NO]; + [self.viewinforight setHidden:YES]; + + [self.viewinfoLeft setHidden:NO]; + [self.answerView setHidden:YES]; + [self.lbvalueLeft setHidden:YES]; + if(model.messageType==2) + { + [self.viewinfoLeft setHidden:YES]; + [self.functionView setHidden:NO]; + self.functionView.arrdata = model.arrfunction; + + } + else if(model.messageType==3) + { + [self.answerView setHidden:NO]; + self.answerView.strvalue = model.text; + self.answerView.arrdata = model.arrfunction; + [self.viewinfoLeft mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.offset(UISCREEN_WIDTH-40); + }]; + [self.viewinfoLeft setNeedsDisplay]; + + float fheigh = [Tools getLabelHeightWithText:model.text width:UISCREEN_WIDTH-80 font:14 linHeight:0]+1; + fheigh+=model.arrfunction.count*47+35; + + [self.answerView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(fheigh-25); + }]; + [self.viewinfoLeft mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(fheigh-15); + }]; + + model.height= fheigh; + } + else + { + [self.lbvalueLeft setHidden:NO]; + float f_width = [Tools getWidthWithText:model.text height:20 font:14]+41; + if(f_width>UISCREEN_WIDTH-40) + { + f_width = UISCREEN_WIDTH-40; + } + [self.viewinfoLeft mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.offset(f_width); + }]; + + self.lbvalueLeft.isCloseAnimation = !model.isAnimation; + self.lbvalueLeft.strValue = model.text; + } + } + +} + +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerTableViewCell.h b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerTableViewCell.h new file mode 100644 index 0000000..2393648 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerTableViewCell.h @@ -0,0 +1,17 @@ +// +// AIChaAnswerTableViewCell.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChaAnswerTableViewCell : UITableViewCell +/// +@property (nonatomic , strong) UILabel *lbname; +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerTableViewCell.m b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerTableViewCell.m new file mode 100644 index 0000000..e5e3713 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerTableViewCell.m @@ -0,0 +1,57 @@ +// +// AIChaAnswerTableViewCell.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChaAnswerTableViewCell.h" + + +@interface AIChaAnswerTableViewCell () + +@end + +@implementation AIChaAnswerTableViewCell + +-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier +{ + if(self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) + { + UIView *viewback = [[UIView alloc] init]; + [viewback setBackgroundColor:RGBCOLOR(226, 228, 253)]; + [self.contentView addSubview:viewback]; + [viewback mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.equalTo(self); + make.height.offset(37); + }]; + [viewback.layer setMasksToBounds:YES]; + [viewback.layer setCornerRadius:12]; + + UILabel *lbname = [[UILabel alloc] init]; + [lbname setText:@"介绍一种事物的创作灵感"]; + [lbname setTextColor:RGBCOLOR(108, 119, 246)]; + [lbname setTextAlignment:NSTextAlignmentLeft]; + [lbname setFont:[UIFont systemFontOfSize:12]]; + [viewback addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(15); + make.centerY.equalTo(viewback); + make.right.equalTo(viewback).offset(-50); + }]; + + UIImageView *imgvback = [[UIImageView alloc] init]; + [imgvback setImage:[UIImage imageNamed:@"ai_cell_item_next"]]; + [viewback addSubview:imgvback]; + [imgvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.offset(16); + make.centerY.equalTo(viewback); + make.right.equalTo(viewback).offset(-15); + }]; + + + } + return self; +} + +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerView.h b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerView.h new file mode 100644 index 0000000..85e248b --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerView.h @@ -0,0 +1,19 @@ +// +// AIChaAnswerView.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChaAnswerView : UIView +/// +@property (nonatomic , strong) NSString *strvalue; +/// +@property (nonatomic , strong) NSArray *arrdata; +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerView.m b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerView.m new file mode 100644 index 0000000..228c84e --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/提问列表/AIChaAnswerView.m @@ -0,0 +1,112 @@ +// +// AIChaAnswerView.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChaAnswerView.h" +#import "AIChaAnswerTableViewCell.h" + +@interface AIChaAnswerView () +/// +@property (nonatomic , strong) UILabel *lbname; +/// +@property (nonatomic , strong) UITableView *tableView; + +@end + +@implementation AIChaAnswerView + +-(id)initWithFrame:(CGRect)frame +{ + if(self = [super initWithFrame:frame]) + { + UILabel *lbname = [[UILabel alloc] init]; + [lbname setNumberOfLines:0]; + [lbname setTextColor:RGBCOLOR(51, 51, 51)]; + [lbname setTextAlignment:NSTextAlignmentLeft]; + [lbname setFont:[UIFont systemFontOfSize:14]]; + [lbname setNumberOfLines:0]; + [self addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self); + make.top.offset(0); + }]; + _lbname = lbname; + + UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; + [tableView setBackgroundColor:[UIColor clearColor]]; + [tableView setDelegate:self]; + [tableView setDataSource:self]; + [tableView setScrollEnabled:NO]; + [self addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self); + make.top.equalTo(lbname.mas_bottom).offset(10); + make.height.offset(47); + }]; + _tableView = tableView; + + } + return self; +} +-(void)setArrdata:(NSArray *)arrdata +{ + _arrdata = arrdata; + + [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(47*self.arrdata.count); + }]; + [self.tableView reloadData]; +} +-(void)setStrvalue:(NSString *)strvalue +{ + self.lbname.text = strvalue; +} +#pragma mark - UITableView +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return self.arrdata.count; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *strcell = @"AIChaAnswerTableViewCell"; + AIChaAnswerTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:strcell]; + if(!cell) + { + cell = [[AIChaAnswerTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:strcell]; + [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; + [cell setBackgroundColor:[UIColor clearColor]]; + } + cell.lbname.text = self.arrdata[indexPath.row]; + + return cell; +} +-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section +{ + return 0.01; +} +-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section +{ + return 0.01; +} +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + return 47; +} +-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section +{ + return [UIView new]; +} +-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section +{ + return [UIView new]; +} +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + +} + +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionCollectionViewCell.h b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionCollectionViewCell.h new file mode 100644 index 0000000..49a40f0 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionCollectionViewCell.h @@ -0,0 +1,18 @@ +// +// AIChatFunctionCollectionViewCell.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChatFunctionCollectionViewCell : UICollectionViewCell +/// +@property (nonatomic , strong) NSString *strname; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionCollectionViewCell.m b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionCollectionViewCell.m new file mode 100644 index 0000000..0f597d0 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionCollectionViewCell.m @@ -0,0 +1,68 @@ +// +// AIChatFunctionCollectionViewCell.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChatFunctionCollectionViewCell.h" + +@interface AIChatFunctionCollectionViewCell () +/// +@property (nonatomic , strong) UIImageView *imgvback; +/// +@property (nonatomic , strong) UILabel *lbname; + +@end + +@implementation AIChatFunctionCollectionViewCell +-(id)initWithFrame:(CGRect)frame +{ + if(self = [super initWithFrame:frame]) + { + UIView *viewback = [[UIView alloc] init]; + [viewback setBackgroundColor:[UIColor whiteColor]]; + [self.contentView addSubview:viewback]; + [viewback mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + UIView *viewitem = [[UIView alloc] init]; + [viewitem setBackgroundColor:RGBCOLOR(226, 228, 253)]; + [viewback addSubview:viewitem]; + [viewitem mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.offset(40); + make.centerX.equalTo(viewback); + make.centerY.equalTo(viewback).offset(-12); + }]; + [viewitem.layer setMasksToBounds:YES]; + [viewitem.layer setCornerRadius:11]; + + UIImageView *imgvback = [[UIImageView alloc] init]; + [viewitem addSubview:imgvback]; + [imgvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.offset(28); + make.center.equalTo(viewitem); + }]; + _imgvback = imgvback; + + UILabel *lbname = [[UILabel alloc] init]; + [lbname setTextColor:RGBCOLOR(51, 51, 51)]; + [lbname setTextAlignment:NSTextAlignmentLeft]; + [lbname setFont:[UIFont systemFontOfSize:14]]; + [viewback addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(viewitem.mas_bottom).offset(5); + make.centerX.equalTo(viewback); + }]; + _lbname = lbname; + + } + return self; +} +-(void)setStrname:(NSString *)strname +{ + self.lbname.text = strname; + self.imgvback.image = [UIImage imageNamed:[NSString stringWithFormat:@"ai_%@",strname]]; +} +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionView.h b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionView.h new file mode 100644 index 0000000..27a7356 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionView.h @@ -0,0 +1,17 @@ +// +// AIChatFunctionView.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChatFunctionView : UIView +/// +@property (nonatomic , strong) NSArray *arrdata; +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionView.m b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionView.m new file mode 100644 index 0000000..a6dd4e2 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/cell/默认功能/AIChatFunctionView.m @@ -0,0 +1,83 @@ +// +// AIChatFunctionView.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChatFunctionView.h" +#import "AIChatFunctionCollectionViewCell.h" + + +@interface AIChatFunctionView () +/// +@property (nonatomic , strong) UICollectionView *collect; + +@end + +@implementation AIChatFunctionView + +-(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.offset(0); + make.right.equalTo(self); + make.top.bottom.equalTo(self); + }]; + [collect registerClass:[AIChatFunctionCollectionViewCell class] forCellWithReuseIdentifier:@"AIChatFunctionCollectionViewCell"]; + _collect = collect; + + } + return self; +} +-(void)setArrdata:(NSArray *)arrdata +{ + _arrdata = arrdata; + [self.collect reloadData]; +} +#pragma mark - UICollectionView +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section +{ + return self.arrdata.count; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath +{ + AIChatFunctionCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"AIChatFunctionCollectionViewCell" forIndexPath:indexPath]; + cell.strname = self.arrdata[indexPath.row]; + return cell; +} +//定义每个section的间距 +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ + + return UIEdgeInsetsMake(7, 20, 7, 20); +} +//纵向cell间距 +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{ + return 0; +} +//cell 间距 +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout ForSectionAtIndex:(NSInteger)section{ + return 0; +} +// 定义每个UICollectionViewCell 的大小 +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath +{ + return CGSizeMake((UISCREEN_WIDTH-80)/3.0, 85); +} +-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath +{ + ///做选中操作 + +} +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/model/AIChatModel.h b/ProductApp/ProductApp/ProductMain/AIChart/model/AIChatModel.h new file mode 100644 index 0000000..4dc24a8 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/model/AIChatModel.h @@ -0,0 +1,31 @@ +// +// AIChatModel.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChatModel : NSObject +///消息类型0文本 1语言 2默认功能 3返回的提问列表 +@property (nonatomic , assign) int messageType; +/// +@property (nonatomic , strong) NSString *text; +///语音链接(只有自己发的才有语音) +@property (nonatomic , strong) NSString *audioUrl; + +/// +@property (nonatomic , strong) NSArray *arrfunction; +///是否是我发的消息 +@property (nonatomic , assign) BOOL ismy; +@property (nonatomic , assign) BOOL isAnimation; + +@property (nonatomic , assign) float height; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/model/AIChatModel.m b/ProductApp/ProductApp/ProductMain/AIChart/model/AIChatModel.m new file mode 100644 index 0000000..bede176 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/model/AIChatModel.m @@ -0,0 +1,12 @@ +// +// AIChatModel.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChatModel.h" + +@implementation AIChatModel + +@end diff --git a/ProductApp/ProductApp/ProductMain/AIChart/view/AIChatBottomView.h b/ProductApp/ProductApp/ProductMain/AIChart/view/AIChatBottomView.h new file mode 100644 index 0000000..f3524b6 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/view/AIChatBottomView.h @@ -0,0 +1,16 @@ +// +// AIChatBottomView.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface AIChatBottomView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/AIChart/view/AIChatBottomView.m b/ProductApp/ProductApp/ProductMain/AIChart/view/AIChatBottomView.m new file mode 100644 index 0000000..bfb446f --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/AIChart/view/AIChatBottomView.m @@ -0,0 +1,220 @@ +// +// AIChatBottomView.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "AIChatBottomView.h" +#import "HuanGeSiLuCollectionViewCell.h" +#import "FSTextView.h" + +@interface AIChatBottomView () +/// +@property (nonatomic , strong) UICollectionView *collect; +/// +@property (nonatomic , strong) NSArray *arrdata; +/// +@property (nonatomic , strong) FSTextView *viewtext; +/// +@property (nonatomic , strong) UIButton *btsend; +@property (nonatomic , strong) UIButton *btyuyin ; + +@end + +@implementation AIChatBottomView + +-(id)initWithFrame:(CGRect)frame +{ + if(self = [super initWithFrame:frame]) + { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 0; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + UICollectionView *collect = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + [collect setDelegate:self]; + [collect setDataSource:self]; + [collect setShowsHorizontalScrollIndicator:NO]; + [collect setBackgroundColor:[UIColor clearColor]]; + [self addSubview:collect]; + [collect mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(0); + make.right.equalTo(self); + make.top.offset(0); + make.height.offset(40); + }]; + [collect registerClass:[HuanGeSiLuCollectionViewCell class] forCellWithReuseIdentifier:@"HuanGeSiLuCollectionViewCell"]; + _collect = collect; + + self.arrdata = @[@"写作灵感",@"写作题材",@"语句扩写",@"作文开头",@"写作技巧",@"诗句名言"]; + + FSTextView *viewtext = [[FSTextView alloc] init]; + [viewtext setTextColor:RGBCOLOR(51, 51, 51)]; + [viewtext setTextAlignment:NSTextAlignmentLeft]; + [viewtext setFont:[UIFont systemFontOfSize:14]]; + [viewtext setPlaceholder:@"请输入您的想法(500字以内)"]; + [self addSubview:viewtext]; + [viewtext mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(55); + make.top.equalTo(collect.mas_bottom).offset(10); + make.right.equalTo(self).offset(-20); + make.height.offset(40); + }]; + + [viewtext setTextContainerInset:UIEdgeInsetsMake(10, 8, 10, 8)]; + [viewtext setMaxLength:500]; + [viewtext setBackgroundColor:RGBCOLOR(245, 245, 245)]; + [viewtext.layer setMasksToBounds:YES]; + [viewtext.layer setCornerRadius:20]; + _viewtext = viewtext; + [viewtext addTextDidChangeHandler:^(FSTextView *textView) { + if(textView.text.length>0) + { + float fheight = [Tools getLabelHeightWithText:textView.text width:UISCREEN_WIDTH-55-60-16 font:14 linHeight:0]+20; + if(fheight<40)fheight=40; + if(fheight>96)fheight=96; + [self.btsend setHidden:NO]; + [self.viewtext mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self).offset(-60); + make.height.offset(fheight); + }]; + } + else + { + [self.btsend setHidden:YES]; + [self.viewtext mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self).offset(-20); + make.height.offset(40); + }]; + } + }]; + + UIButton *btinput = [[UIButton alloc] init]; + [btinput setImage:[UIImage imageNamed:@"ai_yuyin"] forState:UIControlStateNormal]; + [btinput setImage:[UIImage imageNamed:@"ai_jianpan"] forState:UIControlStateSelected]; + [self addSubview:btinput]; + [btinput mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.offset(40); + make.bottom.equalTo(viewtext); + make.left.offset(7); + }]; + [btinput addTarget:self action:@selector(inputAction:) forControlEvents:UIControlEventTouchUpInside]; + + UIButton *btsend = [[UIButton alloc] init]; + [btsend setImage:[UIImage imageNamed:@"ai_send"] forState:UIControlStateNormal]; + [self addSubview:btsend]; + [btsend mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.offset(40); + make.bottom.equalTo(viewtext); + make.right.equalTo(self).offset(-10); + }]; + [btsend setHidden:YES]; + [btsend addTarget:self action:@selector(sendAction) forControlEvents:UIControlEventTouchUpInside]; + _btsend = btsend; + + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.equalTo(viewtext).offset(10); + }]; + + UIButton *btyuyin = [[UIButton alloc] init]; + [btyuyin setTitle:@"按住说话" forState:UIControlStateNormal]; + [btyuyin setTitleColor:RGBCOLOR(108, 108, 108) forState:UIControlStateNormal]; + [btyuyin.titleLabel setFont:[UIFont systemFontOfSize:15]]; + [btyuyin.layer setMasksToBounds:YES]; + [btyuyin.layer setCornerRadius:20]; + [btyuyin setBackgroundColor:RGBCOLOR(245, 245, 245)]; + [self addSubview:btyuyin]; + [btyuyin mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.equalTo(viewtext); + make.height.offset(40); + make.right.equalTo(self).offset(-20); + }]; +// [btyuyin addTarget:self action:@selector(yuyinAction) forControlEvents:UIControlEventTouchUpInside]; + [btyuyin setHidden:YES]; + _btyuyin = btyuyin; + } + return self; +} + +-(void)inputAction:(UIButton *)sender +{ + sender.selected = !sender.selected; + if(sender.selected) + { + [self.btyuyin setHidden:NO]; + [self.btsend setHidden:YES]; + [self.viewtext setHidden:YES]; + [self endEditing:YES]; + [self.viewtext mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.offset(40); + }]; + } + else + { + [self.btyuyin setHidden:YES]; + if(self.viewtext.text.length>0) + { + [self.btsend setHidden:NO]; + } + else + { + [self.btsend setHidden:YES]; + } + [self.viewtext setHidden:NO]; + [self.viewtext becomeFirstResponder]; + float fheight = [Tools getLabelHeightWithText:self.viewtext.text width:UISCREEN_WIDTH-55-60-16 font:14 linHeight:0]+20; + if(fheight<40)fheight=40; + if(fheight>96)fheight=96; + [self.btsend setHidden:NO]; + [self.viewtext mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self).offset(-60); + make.height.offset(fheight); + }]; + } + +} + +-(void)sendAction +{ + +} + +#pragma mark - UICollectionView +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section +{ + return self.arrdata.count; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath +{ + HuanGeSiLuCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"HuanGeSiLuCollectionViewCell" forIndexPath:indexPath]; + cell.lbname.text = self.arrdata[indexPath.row]; + [cell.viewback.layer setCornerRadius:13]; + + return cell; +} +//定义每个section的间距 +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ + + return UIEdgeInsetsMake(7, 20, 7, 20); +} +//纵向cell间距 +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{ + return 15; +} +//cell 间距 +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout ForSectionAtIndex:(NSInteger)section{ + return 15; +} +// 定义每个UICollectionViewCell 的大小 +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath +{ + return CGSizeMake(72, 26); +} +-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath +{ + ///做选中操作 + +} + +@end diff --git a/ProductApp/ProductApp/ProductMain/范文/FanWenListViewController.m b/ProductApp/ProductApp/ProductMain/范文/FanWenListViewController.m index 5d414e7..314afa3 100644 --- a/ProductApp/ProductApp/ProductMain/范文/FanWenListViewController.m +++ b/ProductApp/ProductApp/ProductMain/范文/FanWenListViewController.m @@ -6,9 +6,12 @@ // #import "FanWenListViewController.h" +#import "FanWenListTableViewCell.h" +#import "FanWenDetailViewController.h" -@interface FanWenListViewController () - +@interface FanWenListViewController () +/// +@property (nonatomic , strong) UITableView *tableView; @end @implementation FanWenListViewController @@ -17,9 +20,130 @@ [super viewDidLoad]; [self.view setBackgroundColor:[UIColor clearColor]]; + UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone]; + [tableView setBackgroundColor:[UIColor clearColor]]; + [tableView setDelegate:self]; + [tableView setDataSource:self]; + [self.view addSubview:tableView]; + [tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.view); + make.top.offset(0); + }]; + [tableView setEmptyDataSetDelegate:self]; + [tableView setEmptyDataSetSource:self]; + _tableView = tableView; + } +#pragma mark - UITableView +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return 10; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *strcell = @"FanWenListTableViewCell"; + FanWenListTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:strcell]; + if(!cell) + { + cell = [[FanWenListTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:strcell]; + [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; + [cell setBackgroundColor:[UIColor clearColor]]; + } + + return cell; +} +-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section +{ + return 7; +} +-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section +{ + return 0.01; +} +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath +{ + return 158; +} +-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section +{ + return [UIView new]; +} +-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section +{ + return [UIView new]; +} +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + FanWenDetailViewController *vc = [FanWenDetailViewController new]; + [self.navigationController pushViewController:vc animated:YES]; +} +#pragma mark - DZNEmptyDataSetSource +- (UIView *)customViewForEmptyDataSet:(UIScrollView *)scrollView +{ + UIView *viewback = [[UIView alloc] init]; + NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:viewback attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:UISCREEN_HEIGHT-TabHeight-100]; + [viewback addConstraint:heightConstraint]; + [viewback setBackgroundColor:[UIColor clearColor]]; + [viewback setUserInteractionEnabled:YES]; + + NSString *strimg = @"fanwen_noinfo"; - - + UIImageView *imgvback = [[UIImageView alloc] init]; + [imgvback setImage:[UIImage imageNamed:strimg]]; + [imgvback setContentMode:UIViewContentModeScaleAspectFit]; + [viewback addSubview:imgvback]; + [imgvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.offset(UISCREEN_WIDTH*0.6); + make.centerX.equalTo(viewback); + make.top.offset(50); + }]; + + NSString *str = @"暂无结果"; + UILabel *lbname = [[UILabel alloc] init]; + [lbname setText:str]; + [lbname setTextColor:RGBCOLOR(51, 51, 51)]; + [lbname setTextAlignment:NSTextAlignmentCenter]; + [lbname setFont:[UIFont boldSystemFontOfSize:20]]; + [viewback addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(imgvback.mas_bottom).offset(20); + make.centerX.equalTo(viewback); + }]; + + UILabel *lbinfo = [[UILabel alloc] init]; + [lbinfo setText:@"抱歉没有查询到相关的文章"]; + [lbinfo setTextColor:RGBCOLOR(109, 109, 109)]; + [lbinfo setTextAlignment:NSTextAlignmentCenter]; + [lbinfo setFont:[UIFont systemFontOfSize:16]]; + [viewback addSubview:lbinfo]; + [lbinfo mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(lbname.mas_bottom).offset(10); + make.centerX.equalTo(viewback); + }]; + + UIButton *btok = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH-230, 40)]; + [btok setTitle:@"AI写一篇" forState:UIControlStateNormal]; + [btok setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [btok.titleLabel setFont:[UIFont systemFontOfSize:16]]; + [btok.layer setMasksToBounds:YES]; + [btok.layer setCornerRadius:20]; + [btok setBackgroundColor:RGBCOLOR(108, 119, 246)]; + [viewback addSubview:btok]; + [btok mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(115); + make.right.equalTo(viewback).offset(-115); + make.top.equalTo(lbinfo.mas_bottom).offset(38); + make.height.offset(40); + }]; + [btok addTarget:self action:@selector(aiAction) forControlEvents:UIControlEventTouchUpInside]; + + + return viewback; +} +-(void)aiAction +{ + +} @end diff --git a/ProductApp/ProductApp/ProductMain/范文/FanWenViewController.m b/ProductApp/ProductApp/ProductMain/范文/FanWenViewController.m index 566e19e..5a868ad 100644 --- a/ProductApp/ProductApp/ProductMain/范文/FanWenViewController.m +++ b/ProductApp/ProductApp/ProductMain/范文/FanWenViewController.m @@ -30,6 +30,7 @@ [self showNaviGationView:YES]; [self.navigationView setTitle:@"" titleColor:RGBCOLOR(60, 60, 60)]; [self.navigationView setBackgroundColor:[UIColor clearColor]]; + [self.view setBackgroundColor:RGBCOLOR(251, 251, 253)]; UIImageView *imgvback = [[UIImageView alloc] init]; [imgvback setImage:[UIImage imageNamed:@"fanwen_bg"]]; @@ -68,7 +69,7 @@ scrollPageView.contentView.backgroundColor = [UIColor clearColor]; scrollPageView.contentView.collectionView.backgroundColor = [UIColor clearColor]; _scrollPageView = scrollPageView; - + [self.scrollPageView reloadWithNewTitles:@[@"全部",@"写给自己",@"检讨书",@"中考作文",@"青春",@"中考作文",@"检讨书",@"写给自己",@"青春",@"检讨书"]]; } -(void)drawSearchView:(UIView *)view diff --git a/ProductApp/ProductApp/ProductMain/范文/cell/FanWenListTableViewCell.h b/ProductApp/ProductApp/ProductMain/范文/cell/FanWenListTableViewCell.h new file mode 100644 index 0000000..b4e8330 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/范文/cell/FanWenListTableViewCell.h @@ -0,0 +1,16 @@ +// +// FanWenListTableViewCell.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface FanWenListTableViewCell : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/范文/cell/FanWenListTableViewCell.m b/ProductApp/ProductApp/ProductMain/范文/cell/FanWenListTableViewCell.m new file mode 100644 index 0000000..5be214b --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/范文/cell/FanWenListTableViewCell.m @@ -0,0 +1,185 @@ +// +// FanWenListTableViewCell.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "FanWenListTableViewCell.h" + + +@interface FanWenListTableViewCell () + +@end + +@implementation FanWenListTableViewCell + +-(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier +{ + if(self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) + { + UIView *viewback0 = [[UIView alloc] init]; + [viewback0 setBackgroundColor:[UIColor whiteColor]]; + [self.contentView addSubview:viewback0]; + [viewback0 mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(20); + make.right.equalTo(self).offset(-20); + make.top.offset(7); + make.bottom.equalTo(self).offset(-7); + }]; + [Tools normalShadow:viewback0 shadowColor:RGBACOLOR(211, 218, 225, 0.2) shadowOpacity:1 cornerRadius:21 shadowRadius:7]; + + UIView *viewback = [[UIView alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH-40, 144)]; + [viewback setBackgroundColor:[UIColor whiteColor]]; + [self.contentView addSubview:viewback]; + [viewback mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(20); + make.right.equalTo(self).offset(-20); + make.top.offset(7); + make.bottom.equalTo(self).offset(-7); + }]; + [viewback.layer setMasksToBounds:YES]; + [viewback.layer setCornerRadius:21]; + + + [Tools changedView:viewback colors:@[(id)RGBCOLOR(42, 211, 237).CGColor,(id)RGBCOLOR(148, 127, 255).CGColor] startPoint:CGPointMake(0, 0) endPoint:CGPointMake(1, 0)]; + UIImage *imagett = [UIImage imageNamed:@"fw_cellback"]; + UIImageView *imgvback = [[UIImageView alloc] init]; + [imgvback setImage:[imagett resizableImageWithCapInsets:UIEdgeInsetsMake(imagett.size.height/2.0, 50, 50, imagett.size.width/2.0)]]; + [viewback addSubview:imgvback]; + [imgvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(viewback); + }]; + + + UILabel *lbfen = [[UILabel alloc] init]; + [lbfen setText:@"99.5分"]; + [lbfen setTextColor:[UIColor whiteColor]]; + [lbfen setTextAlignment:NSTextAlignmentLeft]; + [lbfen setFont:[UIFont fontWithName:@"D-DIN-PRO-Bold" size:16]]; + [viewback addSubview:lbfen]; + [lbfen mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.offset(11); + make.right.equalTo(viewback).offset(-15); + }]; + + + UILabel *lbname = [[UILabel alloc] init]; + [lbname setText:@"作文标题"]; + [lbname setTextColor:RGBCOLOR(51, 51, 51)]; + [lbname setTextAlignment:NSTextAlignmentLeft]; + [lbname setFont:[UIFont boldSystemFontOfSize:16]]; + [viewback addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.offset(15); + make.width.lessThanOrEqualTo(@(UISCREEN_WIDTH-210)); + }]; + + UIView *viewtype = [[UIView alloc] init]; + [viewtype setBackgroundColor:RGBCOLOR(240, 241, 254)]; + [viewback addSubview:viewtype]; + [viewtype mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.offset(17); + make.left.equalTo(lbname.mas_right).offset(10); + make.top.offset(12); + }]; + [viewtype.layer setMasksToBounds:YES]; + [viewtype.layer setCornerRadius:4]; + + UILabel *lbtype = [[UILabel alloc] init]; + [lbtype setText:@"记叙文"]; + [lbtype setTextColor:RGBCOLOR(108, 119, 246)]; + [lbtype setTextAlignment:NSTextAlignmentLeft]; + [lbtype setFont:[UIFont systemFontOfSize:12]]; + [viewtype addSubview:lbtype]; + [lbtype mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(4); + make.centerY.equalTo(viewtype); + }]; + + [viewtype mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(lbtype).offset(4); + }]; + + UILabel *lbinfo = [[UILabel alloc] init]; + [lbinfo setText:@"部分作文内容部分作文内容部分作文内容部分作文内容部分作文内容部分作文内容部分作文内容部分作文内容部分作文内容"]; + [lbinfo setTextColor:RGBCOLOR(51, 51, 51)]; + [lbinfo setTextAlignment:NSTextAlignmentLeft]; + [lbinfo setFont:[UIFont systemFontOfSize:14]]; + [lbinfo setNumberOfLines:2]; + [viewback addSubview:lbinfo]; + [lbinfo mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(lbname); + make.top.equalTo(lbname.mas_bottom).offset(10); + make.right.equalTo(viewback).offset(-15); + }]; + + UIView *viewline = [[UIView alloc] init]; + [viewline setBackgroundColor:RGBCOLOR(239, 239, 239)]; + [viewback addSubview:viewline]; + [viewline mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(lbinfo); + make.height.offset(1); + make.top.equalTo(lbinfo.mas_bottom).offset(10); + }]; + + UIView *viewnj = [self drawLBType]; + [viewback addSubview:viewnj]; + [viewnj mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(viewline); + make.top.equalTo(viewline.mas_bottom).offset(12); + make.height.offset(21); + }]; + + UIView *viewzs = [self drawLBType]; + [viewback addSubview:viewzs]; + [viewzs mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(viewnj.mas_right).offset(10); + make.top.height.equalTo(viewnj); + }]; + + UIButton *btqw = [[UIButton alloc] init]; + [btqw setTitle:@"查看全文" forState:UIControlStateNormal]; + [btqw setTitleColor:RGBCOLOR(108, 119, 246) forState:UIControlStateNormal]; + [btqw.titleLabel setFont:[UIFont systemFontOfSize:12]]; + [btqw setImage:[UIImage imageNamed:@"fw_next"] forState:UIControlStateNormal]; + [viewback addSubview:btqw]; + [btqw mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(viewnj); + make.right.equalTo(viewline).offset(5); + make.height.offset(24); + make.width.offset(80); + }]; + [btqw setIconInRight]; + [btqw setUserInteractionEnabled:NO]; + + } + return self; +} +-(UIView *)drawLBType +{ + UIView *viewback = [[UIView alloc] init]; + [viewback setBackgroundColor:RGBCOLOR(246, 246, 246)]; + [viewback.layer setMasksToBounds:YES]; + [viewback.layer setCornerRadius:8]; + + UILabel *lbname = [[UILabel alloc] init]; + [lbname setText:@"全学段"]; + [lbname setTextColor:RGBCOLOR(157, 157, 157)]; + [lbname setTextAlignment:NSTextAlignmentLeft]; + [lbname setFont:[UIFont systemFontOfSize:12]]; + [viewback addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(6); + make.centerY.equalTo(viewback); + }]; + [lbname setTag:1]; + + [viewback mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(lbname).offset(6); + }]; + + return viewback; +} + +@end diff --git a/ProductApp/ProductApp/ProductMain/范文/详情/FanWenDetailViewController.h b/ProductApp/ProductApp/ProductMain/范文/详情/FanWenDetailViewController.h new file mode 100644 index 0000000..0f5ead1 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/范文/详情/FanWenDetailViewController.h @@ -0,0 +1,16 @@ +// +// FanWenDetailViewController.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "BaseViewController.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FanWenDetailViewController : BaseViewController + +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/范文/详情/FanWenDetailViewController.m b/ProductApp/ProductApp/ProductMain/范文/详情/FanWenDetailViewController.m new file mode 100644 index 0000000..c451e4d --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/范文/详情/FanWenDetailViewController.m @@ -0,0 +1,42 @@ +// +// FanWenDetailViewController.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "FanWenDetailViewController.h" +#import "FanWenDetailView.h" + + +@interface FanWenDetailViewController () + +@end + +@implementation FanWenDetailViewController +- (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:RGBCOLOR(251, 251, 253)]; + + FanWenDetailView *view = [FanWenDetailView new]; + [self.view addSubview:view]; + [view mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.view); + make.top.offset(NavHeight); + }]; + +} + + + +@end diff --git a/ProductApp/ProductApp/ProductMain/范文/详情/view/FanWenDetailView.h b/ProductApp/ProductApp/ProductMain/范文/详情/view/FanWenDetailView.h new file mode 100644 index 0000000..ecd0d3c --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/范文/详情/view/FanWenDetailView.h @@ -0,0 +1,16 @@ +// +// FanWenDetailView.h +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface FanWenDetailView : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/ProductApp/ProductApp/ProductMain/范文/详情/view/FanWenDetailView.m b/ProductApp/ProductApp/ProductMain/范文/详情/view/FanWenDetailView.m new file mode 100644 index 0000000..2dd02b8 --- /dev/null +++ b/ProductApp/ProductApp/ProductMain/范文/详情/view/FanWenDetailView.m @@ -0,0 +1,206 @@ +// +// FanWenDetailView.m +// ProductApp +// +// Created by 工作 on 2024/10/14. +// + +#import "FanWenDetailView.h" + + +@interface FanWenDetailView () +/// +@property (nonatomic , strong) NSMutableArray *arrBtXin; + +@end + +@implementation FanWenDetailView + +-(id)initWithFrame:(CGRect)frame +{ + if(self = [super initWithFrame:frame]) + { + UIScrollView *scvback = [[UIScrollView alloc] init]; + [self addSubview:scvback]; + [scvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.offset(0); + make.width.equalTo(self); + make.height.equalTo(self).offset(-TabHeight-20); + }]; + + UILabel *lbname = [[UILabel alloc] init]; + [lbname setText:@"写给自己"]; + [lbname setTextColor:RGBCOLOR(51, 51, 51)]; + [lbname setTextAlignment:NSTextAlignmentCenter]; + [lbname setFont:[UIFont boldSystemFontOfSize:24]]; + [scvback addSubview:lbname]; + [lbname mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.offset(20); + make.left.offset(20); + make.width.equalTo(scvback).offset(-40); + }]; + + UILabel *lbinfo = [[UILabel alloc] init]; + [lbinfo setText:@"初一丨应用文丨145字"]; + [lbinfo setTextColor:RGBCOLOR(108, 108, 108)]; + [lbinfo setTextAlignment:NSTextAlignmentCenter]; + [lbinfo setFont:[UIFont systemFontOfSize:12]]; + [scvback addSubview:lbinfo]; + [lbinfo mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(lbname); + make.top.equalTo(lbname.mas_bottom).offset(15); + }]; + + UILabel *lbcontent = [[UILabel alloc] init]; + [lbcontent setText:@" 给自己一个微笑,鼓励自己,让自己的自信心恢复原来的样子。给自己一个微笑,失败了可以重来,梦碎了可以重建,但我们不必太自责。给自己一个微笑,让自己坚持把这件事干好,干的比之前更好。"]; + [lbcontent setTextColor:RGBCOLOR(51, 51, 51)]; + [lbcontent setTextAlignment:NSTextAlignmentLeft]; + [lbcontent setFont:[UIFont systemFontOfSize:16]]; + [lbcontent setNumberOfLines:0]; + [scvback addSubview:lbcontent]; + [lbcontent mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(lbname); + make.top.equalTo(lbinfo.mas_bottom).offset(20); + }]; + + UILabel *lbpf = [[UILabel alloc] init]; + [lbpf setText:@"请给以上内容评分"]; + [lbpf setTextColor:RGBCOLOR(109, 109, 109)]; + [lbpf setTextAlignment:NSTextAlignmentLeft]; + [lbpf setFont:[UIFont systemFontOfSize:14]]; + [scvback addSubview:lbpf]; + [lbpf mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(lbcontent.mas_bottom).offset(40); + make.centerX.equalTo(lbname); + }]; + + UIView *viewxin = [[UIView alloc] init]; + [scvback addSubview:viewxin]; + [viewxin mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(lbpf.mas_bottom).offset(10); + make.height.offset(30); + make.centerX.equalTo(lbname); + }]; + [self drawXinView:viewxin]; + + UILabel *lbts = [[UILabel alloc] init]; + [lbts setText:@"请给以上内容评分"]; + [lbts setTextColor:RGBCOLOR(109, 109, 109)]; + [lbts setTextAlignment:NSTextAlignmentLeft]; + [lbts setFont:[UIFont systemFontOfSize:14]]; + [scvback addSubview:lbts]; + [lbts mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(viewxin.mas_bottom).offset(15); + make.centerX.equalTo(lbname); + }]; + + [scvback mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.equalTo(lbts).offset(20); + }]; + + + UIView *viewbottom = [[UIView alloc] init]; + [viewbottom setBackgroundColor:[UIColor whiteColor]]; + [self addSubview:viewbottom]; + [viewbottom mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self); + make.top.equalTo(scvback.mas_bottom); + }]; + [self drawBottonView:viewbottom]; + + } + return self; +} +-(void)drawXinView:(UIView *)view +{ + [view mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.offset(40*5); + }]; + + UIImage *imagexin = [UIImage imageNamed:@"fanwen_xin"]; + UIImage *imagexinN = [Tools imageWithImageName:imagexin imageColor:RGBCOLOR(216, 216, 216)]; + self.arrBtXin = [NSMutableArray new]; + for(int i = 0 ; i < 5; i++) + { + UIButton *btxin = [[UIButton alloc] init]; + [btxin setImage:imagexinN forState:UIControlStateNormal]; + [btxin setImage:imagexin forState:UIControlStateSelected]; + [view addSubview:btxin]; + [btxin mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.equalTo(view); + make.left.offset(40*i); + make.width.offset(40); + }]; + [btxin setTag:i]; + [btxin addTarget:self action:@selector(xinAction:) forControlEvents:UIControlEventTouchUpInside]; + [self.arrBtXin addObject:btxin]; + } + +} +-(void)drawBottonView:(UIView *)view +{ + UIView *viewline = [[UIView alloc] init]; + [viewline setBackgroundColor:RGBCOLOR(238, 238, 238)]; + [view addSubview:viewline]; + [viewline mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.equalTo(view); + make.height.offset(1); + }]; + + UIButton *btcopy = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISCREEN_WIDTH-168, 50)]; + [btcopy setTitle:@"复制全文" forState:UIControlStateNormal]; + [btcopy setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [btcopy.titleLabel setFont:[UIFont systemFontOfSize:18]]; + [btcopy.layer setMasksToBounds:YES]; + [btcopy.layer setCornerRadius:16]; + [view addSubview:btcopy]; + [btcopy mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.offset(20); + make.top.offset(10); + make.height.offset(50); + make.right.equalTo(view).offset(-148); + }]; + [btcopy setTag:0]; + [btcopy addTarget:self action:@selector(bottomAction:) forControlEvents:UIControlEventTouchUpInside]; + [Tools changedView:btcopy colors:MainJBColors startPoint:CGPointMake(0, 0) endPoint:CGPointMake(1, 0)]; + + UIButton *btchange = [[UIButton alloc] init]; + [btchange setTitle:@"改写" forState:UIControlStateNormal]; + [btchange setTitleColor:RGBCOLOR(61, 61, 61) forState:UIControlStateNormal]; + [btchange.titleLabel setFont:[UIFont systemFontOfSize:18]]; + [btchange.layer setMasksToBounds:YES]; + [btchange.layer setCornerRadius:16]; + [btchange.layer setBorderWidth:1]; + [btchange.layer setBorderColor:RGBCOLOR(216, 216, 216).CGColor]; + [view addSubview:btchange]; + [btchange mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(btcopy.mas_right).offset(20); + make.top.height.equalTo(btcopy); + make.right.equalTo(view).offset(-20); + }]; + [btchange setTag:1]; + [btchange addTarget:self action:@selector(bottomAction:) forControlEvents:UIControlEventTouchUpInside]; + +} +-(void)xinAction:(UIButton *)sender +{ + for(int i = 0 ; i < self.arrBtXin.count;i++) + { + UIButton *bt = self.arrBtXin[i]; + if(i<=sender.tag) + { + [bt setSelected:YES]; + } + else + { + [bt setSelected:NO]; + } + } +} + +-(void)bottomAction:(UIButton *)sender +{ + +} + +@end