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

// AI

parent f78bf79d
......@@ -293,7 +293,11 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource
self.scrollToBottom()
}
}
}
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
}
return cell
......@@ -303,6 +307,11 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource
if let imgInfo = msg.body.imageInfo {
cell.imgInfo = imgInfo
}
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
return cell
}
}
......
......@@ -351,9 +351,12 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
self.scrollToBottom()
}
}
}
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
}
return cell
......@@ -362,6 +365,11 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
if let imgInfo = msg.body.imageInfo {
cell.imgInfo = imgInfo
}
cell.updateBlock = {
[weak self] in
guard let self = self else { return }
self.tableView.reloadData()
}
return cell
}
}
......
......@@ -7,22 +7,22 @@
//
import UIKit
import SDWebImage
class YHAICardItemView: UIView {
var updateBlock:(()->())?
var cardModel = YHAIListItemModel() {
didSet {
cardTitleLabel.text = cardModel.title
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 }
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
}
printLog("RATIO: \(ratio)")
// 尝试从缓存中获取图片
if let cachedImage = SDImageCache.shared.imageFromCache(forKey: cardModel.cover) {
// 如果缓存中有图片,则直接使用
cardImgView.image = cachedImage
let ratio = self.getSizeRatio(img: cachedImage)
self.cardImgView.snp.remakeConstraints { make in
make.left.equalTo(16)
make.right.equalTo(-16)
......@@ -30,15 +30,26 @@ class YHAICardItemView: UIView {
make.height.equalTo(self.cardImgView.snp.width).multipliedBy(ratio)
make.bottom.equalTo(self.cardTitleLabel.snp.top).offset(-10)
}
self.setNeedsLayout()
self.layoutIfNeeded()
self.updateSizeBlock?(size)
} else {
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 = {
let v = UIView()
v.backgroundColor = .init(hex: 0xE9ECF0)
......
......@@ -7,23 +7,32 @@
//
import UIKit
import SDWebImage
class YHAIPictureMessageCell: UITableViewCell {
static let cellReuseIdentifier = "YHAIPictureMessageCell"
var updateBlock: (()->())?
var imgInfo = YHAIImageInfo() {
didSet {
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
make.width.equalTo(size.width)
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 {
if let img = UIImage(named: imgInfo.localImageName) {
......@@ -42,16 +51,21 @@ class YHAIPictureMessageCell: UITableViewCell {
}
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 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
......
......@@ -69,6 +69,8 @@ class YHAIJumpPageTool {
class YHCardMessageCell: UITableViewCell {
var updateBlock:(()->())?
static let cellReuseIdentifier = "YHCardMessageCell"
var evaluationResultCallback: ((Dictionary<String, Any>)->()) = { dic in }
......@@ -84,9 +86,10 @@ class YHCardMessageCell: UITableViewCell {
var lastItemView:YHAICardItemView? = nil
for (index, item) in cardListModel.list.enumerated() {
let productView = YHAICardItemView()
productView.updateSizeBlock = {
[weak self] size in
productView.updateBlock = {
[weak self] in
guard let self = self else { return }
self.updateBlock?()
}
productView.cardModel = item
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