67 lines
1.9 KiB
Swift
67 lines
1.9 KiB
Swift
//
|
||
// PhotoBrowserModel.swift
|
||
// Crush
|
||
//
|
||
// Created by Leon on 2025/7/26.
|
||
//
|
||
|
||
import UIKit
|
||
|
||
class PhotoBrowserModel:NSObject {
|
||
var image: UIImage?
|
||
var imageContentMode: UIView.ContentMode = .scaleAspectFill
|
||
var imageUrl: String?
|
||
var placeHolder: UIImage?
|
||
var sourceRect: CGRect = .zero
|
||
var tagInfo: Any?
|
||
|
||
var deleteTapBlock: ((PhotoBrowserModel, @escaping (Bool) -> Void) -> Void)?
|
||
var likeTapBlock: ((PhotoBrowserModel, @escaping (Bool) -> Void) -> Void)?
|
||
|
||
// MARK: 🚩 一些扩展字段
|
||
// 相册处的模型
|
||
var aiAlbum: AlbumPhotoItem!
|
||
/// aiId
|
||
var aiId: Int?
|
||
var chatBackground: IMChatBackground?
|
||
// IM中
|
||
var sessionModel: SessionBaseModel?
|
||
|
||
override init() {
|
||
sourceRect = .zero
|
||
imageContentMode = .scaleAspectFill
|
||
}
|
||
|
||
var computedSourceRect: CGRect {
|
||
if sourceRect == .zero {
|
||
if let image = image {
|
||
let width = image.size.width
|
||
let height = image.size.height
|
||
return CGRect(
|
||
x: UIScreen.main.bounds.width * 0.5 - width * 0.5,
|
||
y: UIScreen.main.bounds.height * 0.5 - height * 0.5,
|
||
width: width,
|
||
height: height
|
||
)
|
||
} else {
|
||
return CGRect(
|
||
x: UIScreen.main.bounds.width * 0.5 - 40,
|
||
y: UIScreen.main.bounds.height * 0.5 - 40,
|
||
width: 80,
|
||
height: 80
|
||
)
|
||
}
|
||
}
|
||
return sourceRect
|
||
}
|
||
|
||
static func getViewRectForScreen(with view: UIView) -> CGRect {
|
||
guard let window = UIApplication.shared.windows.first else { return .zero }
|
||
return view.superview?.convert(view.frame, to: window) ?? .zero
|
||
}
|
||
|
||
deinit {
|
||
print("♻️EGPhotoBrowserModel dealloc")
|
||
}
|
||
}
|