Commit 060a6f28 authored by Steven杜宇's avatar Steven杜宇

// AI

parent f78bf79d
...@@ -293,7 +293,11 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource ...@@ -293,7 +293,11 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource
self.scrollToBottom() self.scrollToBottom()
} }
} }
}
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
} }
} }
return cell return cell
...@@ -303,6 +307,11 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource ...@@ -303,6 +307,11 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource
if let imgInfo = msg.body.imageInfo { if let imgInfo = msg.body.imageInfo {
cell.imgInfo = imgInfo cell.imgInfo = imgInfo
} }
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
return cell return cell
} }
} }
......
...@@ -351,9 +351,12 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc ...@@ -351,9 +351,12 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
self.scrollToBottom() self.scrollToBottom()
} }
} }
} }
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
} }
return cell return cell
...@@ -362,6 +365,11 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc ...@@ -362,6 +365,11 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
if let imgInfo = msg.body.imageInfo { if let imgInfo = msg.body.imageInfo {
cell.imgInfo = imgInfo cell.imgInfo = imgInfo
} }
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
return cell return cell
} }
} }
......
...@@ -7,22 +7,22 @@ ...@@ -7,22 +7,22 @@
// //
import UIKit import UIKit
import SDWebImage
class YHAICardItemView: UIView { class YHAICardItemView: UIView {
var updateBlock:(()->())?
var cardModel = YHAIListItemModel() { var cardModel = YHAIListItemModel() {
didSet { didSet {
cardTitleLabel.text = cardModel.title cardTitleLabel.text = cardModel.title
describeLabel.text = cardModel.description describeLabel.text = cardModel.description
cardImgView.sd_setImage(with: URL(string: cardModel.cover), placeholderImage: UIImage(named: "global_default_image")) {
[weak self] img, error, cacheType, url in // 尝试从缓存中获取图片
guard let self = self else { return } if let cachedImage = SDImageCache.shared.imageFromCache(forKey: cardModel.cover) {
let size = img?.size ?? CGSize(width: 100, height: 50) // 如果缓存中有图片,则直接使用
var ratio = 0.5 cardImgView.image = cachedImage
if size.width != 0.0, size.height != 0.0 { let ratio = self.getSizeRatio(img: cachedImage)
ratio = size.height/size.width
}
printLog("RATIO: \(ratio)")
self.cardImgView.snp.remakeConstraints { make in self.cardImgView.snp.remakeConstraints { make in
make.left.equalTo(16) make.left.equalTo(16)
make.right.equalTo(-16) make.right.equalTo(-16)
...@@ -30,15 +30,26 @@ class YHAICardItemView: UIView { ...@@ -30,15 +30,26 @@ class YHAICardItemView: UIView {
make.height.equalTo(self.cardImgView.snp.width).multipliedBy(ratio) make.height.equalTo(self.cardImgView.snp.width).multipliedBy(ratio)
make.bottom.equalTo(self.cardTitleLabel.snp.top).offset(-10) make.bottom.equalTo(self.cardTitleLabel.snp.top).offset(-10)
} }
self.setNeedsLayout()
self.layoutIfNeeded() } else {
self.updateSizeBlock?(size) cardImgView.sd_setImage(with: URL(string: cardModel.cover), placeholderImage: UIImage(named: "global_default_image"), options: [], completed: { (image, error, cacheType, url) in
self.updateBlock?()
})
} }
self.setNeedsLayout()
self.layoutIfNeeded()
} }
} }
var updateSizeBlock:((CGSize)->())? func getSizeRatio(img: UIImage?) -> CGFloat {
let size = img?.size ?? CGSize(width: 100, height: 50)
var ratio = 0.5
if size.width != 0.0, size.height != 0.0 {
ratio = size.height/size.width
}
return ratio
}
lazy var lineView: UIView = { lazy var lineView: UIView = {
let v = UIView() let v = UIView()
v.backgroundColor = .init(hex: 0xE9ECF0) v.backgroundColor = .init(hex: 0xE9ECF0)
......
...@@ -7,23 +7,32 @@ ...@@ -7,23 +7,32 @@
// //
import UIKit import UIKit
import SDWebImage
class YHAIPictureMessageCell: UITableViewCell { class YHAIPictureMessageCell: UITableViewCell {
static let cellReuseIdentifier = "YHAIPictureMessageCell" static let cellReuseIdentifier = "YHAIPictureMessageCell"
var updateBlock: (()->())?
var imgInfo = YHAIImageInfo() { var imgInfo = YHAIImageInfo() {
didSet { didSet {
if imgInfo.imageType == YHAIImageType.url.rawValue { if imgInfo.imageType == YHAIImageType.url.rawValue {
imgView.sd_setImage(with: URL(string: imgInfo.imageUrl), placeholderImage: UIImage(named: "global_default_image"), options: [], completed: { (image, error, cacheType, url) in
// 尝试从缓存中获取图片
let size = self.getShowSize(image: image!) if let cachedImage = SDImageCache.shared.imageFromCache(forKey: imgInfo.imageUrl) {
// 如果缓存中有图片,则直接使用
imgView.image = cachedImage
let size = self.getShowSize(image: cachedImage)
self.imgView.snp.updateConstraints { make in self.imgView.snp.updateConstraints { make in
make.width.equalTo(size.width) make.width.equalTo(size.width)
make.height.equalTo(size.height) make.height.equalTo(size.height)
} }
})
} else {
imgView.sd_setImage(with: URL(string: imgInfo.imageUrl), placeholderImage: UIImage(named: "global_default_image"), options: [], completed: { (image, error, cacheType, url) in
self.updateBlock?()
})
}
} else if imgInfo.imageType == YHAIImageType.local.rawValue { } else if imgInfo.imageType == YHAIImageType.local.rawValue {
if let img = UIImage(named: imgInfo.localImageName) { if let img = UIImage(named: imgInfo.localImageName) {
...@@ -42,16 +51,21 @@ class YHAIPictureMessageCell: UITableViewCell { ...@@ -42,16 +51,21 @@ class YHAIPictureMessageCell: UITableViewCell {
} }
self.setNeedsLayout() self.setNeedsLayout()
self.layoutIfNeeded()
} }
} }
func getShowSize(image: UIImage) -> CGSize { func getShowSize(image: UIImage?) -> CGSize {
var imgW = 220.0 let imgW = 220.0
var imgH = 220.0 var imgH = 220.0
var ratio = 1.0 var ratio = 1.0
if image.size.width > 0, image.size.height > 0 {
ratio = image.size.width/image.size.height guard let img = image else {
return CGSizeMake(imgW, imgH)
}
if img.size.width > 0, img.size.height > 0 {
ratio = img.size.width/img.size.height
} }
imgH = imgW/ratio imgH = imgW/ratio
......
...@@ -69,6 +69,8 @@ class YHAIJumpPageTool { ...@@ -69,6 +69,8 @@ class YHAIJumpPageTool {
class YHCardMessageCell: UITableViewCell { class YHCardMessageCell: UITableViewCell {
var updateBlock:(()->())?
static let cellReuseIdentifier = "YHCardMessageCell" static let cellReuseIdentifier = "YHCardMessageCell"
var evaluationResultCallback: ((Dictionary<String, Any>)->()) = { dic in } var evaluationResultCallback: ((Dictionary<String, Any>)->()) = { dic in }
...@@ -84,9 +86,10 @@ class YHCardMessageCell: UITableViewCell { ...@@ -84,9 +86,10 @@ class YHCardMessageCell: UITableViewCell {
var lastItemView:YHAICardItemView? = nil var lastItemView:YHAICardItemView? = nil
for (index, item) in cardListModel.list.enumerated() { for (index, item) in cardListModel.list.enumerated() {
let productView = YHAICardItemView() let productView = YHAICardItemView()
productView.updateSizeBlock = { productView.updateBlock = {
[weak self] size in [weak self] in
guard let self = self else { return } guard let self = self else { return }
self.updateBlock?()
} }
productView.cardModel = item productView.cardModel = item
listView.addSubview(productView) listView.addSubview(productView)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment