Browse Source

添加机器人头部 Imageview

100Years 1 month ago
parent
commit
8b025afd38

+ 6 - 2
AIEmoji.xcodeproj/project.pbxproj

@@ -45,6 +45,7 @@
 		A85E479B2D6808C40018D62D /* TSBigIconBrowseVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E479A2D6808C30018D62D /* TSBigIconBrowseVC.swift */; };
 		A85E479D2D6809DC0018D62D /* TSBigIconBrowseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E479C2D6809DA0018D62D /* TSBigIconBrowseCell.swift */; };
 		A85E479F2D6859FA0018D62D /* TSRandomTextPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E479E2D6859F80018D62D /* TSRandomTextPicker.swift */; };
+		A85E47BC2D68800D0018D62D /* TSMessageContentCell+Ex.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85E47BB2D6880060018D62D /* TSMessageContentCell+Ex.swift */; };
 		A89EA64B2D59A588000EB181 /* MessageKit in Frameworks */ = {isa = PBXBuildFile; productRef = A89EA64A2D59A588000EB181 /* MessageKit */; };
 		A89EA6542D59A9F4000EB181 /* TSTextLayoutSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA64F2D59A9F4000EB181 /* TSTextLayoutSizeCalculator.swift */; };
 		A89EA6552D59A9F4000EB181 /* TSChatMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A89EA6502D59A9F4000EB181 /* TSChatMessage.swift */; };
@@ -172,6 +173,7 @@
 		A85E479A2D6808C30018D62D /* TSBigIconBrowseVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSBigIconBrowseVC.swift; sourceTree = "<group>"; };
 		A85E479C2D6809DA0018D62D /* TSBigIconBrowseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSBigIconBrowseCell.swift; sourceTree = "<group>"; };
 		A85E479E2D6859F80018D62D /* TSRandomTextPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSRandomTextPicker.swift; sourceTree = "<group>"; };
+		A85E47BB2D6880060018D62D /* TSMessageContentCell+Ex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TSMessageContentCell+Ex.swift"; sourceTree = "<group>"; };
 		A89EA64C2D59A9F4000EB181 /* CustomMessageFlowLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomMessageFlowLayout.swift; sourceTree = "<group>"; };
 		A89EA64E2D59A9F4000EB181 /* TSLayoutSizeCalculator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSLayoutSizeCalculator.swift; sourceTree = "<group>"; };
 		A89EA64F2D59A9F4000EB181 /* TSTextLayoutSizeCalculator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TSTextLayoutSizeCalculator.swift; sourceTree = "<group>"; };
@@ -515,6 +517,7 @@
 			children = (
 				A89EA6632D59AA31000EB181 /* CameraInputBarAccessoryView.swift */,
 				A89EA6652D59AA31000EB181 /* TSMessageContentCell.swift */,
+				A85E47BB2D6880060018D62D /* TSMessageContentCell+Ex.swift */,
 				A89EA6662D59AA31000EB181 /* TSTextMessageContentCell.swift */,
 				A89EA6672D59AA31000EB181 /* TableViewCells.swift */,
 			);
@@ -1228,6 +1231,7 @@
 				A80E72382D3F473B00C64288 /* DiyPaperProtocol.swift in Sources */,
 				A8F775382D390C3C00AA6E93 /* TSNetworkManager.swift in Sources */,
 				A85E47982D672AE70018D62D /* TSTextPicGennerateVM.swift in Sources */,
+				A85E47BC2D68800D0018D62D /* TSMessageContentCell+Ex.swift in Sources */,
 				A89EA65F2D59AA11000EB181 /* TSChatViewController.swift in Sources */,
 				A89EA6C62D5F5C22000EB181 /* TSChatInputFullScreenVC.swift in Sources */,
 				A89EA6CA2D642C0A000EB181 /* TSChatViewController+SendMsg.swift in Sources */,
@@ -1261,7 +1265,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 3;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;
@@ -1300,7 +1304,7 @@
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 2;
+				CURRENT_PROJECT_VERSION = 3;
 				DEVELOPMENT_TEAM = 65UD255J84;
 				ENABLE_USER_SCRIPT_SANDBOXING = NO;
 				GENERATE_INFOPLIST_FILE = YES;

+ 1 - 1
AIEmoji.xcodeproj/xcshareddata/xcschemes/AIEmoji.xcscheme

@@ -31,7 +31,7 @@
       shouldAutocreateTestPlan = "YES">
    </TestAction>
    <LaunchAction
-      buildConfiguration = "Debug"
+      buildConfiguration = "Release"
       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
       launchStyle = "0"

+ 1 - 0
AIEmoji/Business/AIChat/TSChatViewController/ViewModel/TSAIChatVM.swift

@@ -99,6 +99,7 @@ extension TSAIChatVM {
         }else {
             let aiString = "I can tackle your questions, my skillset includes, but is not limited to:\n\n📧 Composing high-quality emails\n\n🇺🇸 Facilitating language learning\n\n📑 Assisting in your studies\n\n💡Brainstorming ideas\n\nand much more!"
             let msg = TSChatMessage(kind: .attributedText(kMDAttributedString(text: aiString)), user: kAIUser, messageId: "", date: Date())
+            msg.appendDict = [kCMAppendkey_AIDefaultHeader:"Greetings! Curious about what I can do?".localized]
             return [msg]
         }
     }

+ 41 - 0
AIEmoji/Business/AIChat/TSChatViewController/Views/TSMessageContentCell+Ex.swift

@@ -0,0 +1,41 @@
+//
+//  TSMessageContentCell+Ex.swift
+//  AIEmoji
+//
+//  Created by 100Years on 2025/2/21.
+//
+
+extension TSMessageContentCell {
+
+    func creatAIDefaultHeaderView(text:String) -> UIView {
+        let view = UIView()
+        view.clipsToBounds = true
+        
+        let imageView = UIImageView.createImageView(imageName: "aichat_avatar")
+        view.addSubview(imageView)
+        imageView.snp.makeConstraints { make in
+            make.leading.equalTo(16)
+            make.top.equalTo(0)
+            make.width.height.equalTo(80)
+        }
+
+        let textLabel = UILabel.createLabel(
+            text: text,
+            font: .font(size: 16,weight: .medium),
+            textColor: .white
+        )
+        view.addSubview(textLabel)
+        textLabel.snp.makeConstraints { make in
+            make.leading.equalTo(88)
+            make.trailing.equalTo(-40)
+            make.top.equalTo(0)
+            make.bottom.equalTo(-8)
+        }
+        return view
+    }
+    
+    
+    
+    
+    
+}

+ 27 - 18
AIEmoji/Business/AIChat/TSChatViewController/Views/TSMessageContentCell.swift

@@ -28,6 +28,7 @@ class TSMessageContentCell: MessageCollectionViewCell {
     /// 顶部内容
     var topContainerView: UIView = {
         let containerView = UIView()
+        containerView.clipsToBounds = true
         return containerView
     }()
     
@@ -68,7 +69,6 @@ class TSMessageContentCell: MessageCollectionViewCell {
     
     //初始化 cell
     func setupSubviews() {
-        
         contentView.addSubview(topContainerView)
         contentView.addSubview(centerContainerView)
         contentView.addSubview(bottomContainerView)
@@ -85,6 +85,18 @@ class TSMessageContentCell: MessageCollectionViewCell {
             make.leading.trailing.bottom.equalTo(0)
         }
         
+//        setUpTopContainerView()
+        setUpCenterContainerView()
+        setUpBottomContainerView()
+    }
+    
+    
+    
+    
+    func setUpTopContainerView() {
+    }
+    
+    func setUpCenterContainerView() {
         centerContainerView.addSubview(leadingAvatarImageView)
         centerContainerView.addSubview(messageContainerView)
         centerContainerView.addSubview(trailingAvatarImageView)
@@ -116,7 +128,8 @@ class TSMessageContentCell: MessageCollectionViewCell {
         }
     }
     
-
+    func setUpBottomContainerView() {
+    }
     
     override func prepareForReuse() {
         super.prepareForReuse()
@@ -157,22 +170,6 @@ class TSMessageContentCell: MessageCollectionViewCell {
         guard let displayDelegate = messagesCollectionView.messagesDisplayDelegate else {
             return
         }
-//        cellTopLabel.frame = sizeCalculator.cellTopLabelFrame(
-//            for: message,
-//            at: indexPath)
-//        
-//        cellTopLabel.attributedText = dataSource.cellTopLabelAttributedText(
-//            for: message,
-//            at: indexPath)
-        //    cellDateLabel.frame = sizeCalculator.cellMessageBottomLabelFrame(
-        //      for: message,
-        //      at: indexPath)
-        //      cellDateLabel.attributedText = dataSource.messageBottomLabelAttributedText(
-        //        for: message,
-        //        at: indexPath)
-        
-        
-        
 
         //是否是当前用户发送的消息
         let fromCurrentSender = dataSource.isFromCurrentSender(message: message)
@@ -199,6 +196,18 @@ class TSMessageContentCell: MessageCollectionViewCell {
         messageContainerView.backgroundColor = displayDelegate.backgroundColor(for: message,at: indexPath,in: messagesCollectionView)
     }
     
+//    
+//    func handleTopContainerViewChanged(<#parameters#>) -> <#return type#> {
+//        topContainerView.removeFromSuperview()
+//        if let msgModel = message as? TSChatMessage {
+//            
+//            //有ai机器人头部imageview
+//            if let text = msgModel.appendDict[kCMAppendkey_AIDefaultHeader] {
+//                topContainerView
+//            }
+//        }
+//    }
+    
     /// Handle `ContentView`'s tap gesture, return false when `ContentView` doesn't needs to handle gesture
     func cellContentView(canHandle _: CGPoint) -> Bool {
         false