Fixes for ImageGridRow
This commit is contained in:
parent
98bcfc540d
commit
7edc63d06f
@ -13,6 +13,8 @@ class ImageCell: UICollectionViewCell {
|
||||
self.imgView = UIImageView()
|
||||
self.contentView.addSubview(self.imgView)
|
||||
self.imgView.translatesAutoresizingMaskIntoConstraints = false
|
||||
self.imgView.contentMode = .scaleAspectFill
|
||||
self.imgView.layer.masksToBounds = true
|
||||
NSLayoutConstraint.activate([
|
||||
self.imgView.leadingAnchor.constraint(equalTo: self.contentView.leadingAnchor),
|
||||
self.imgView.trailingAnchor.constraint(equalTo: self.contentView.trailingAnchor),
|
||||
@ -21,9 +23,18 @@ class ImageCell: UICollectionViewCell {
|
||||
])
|
||||
}
|
||||
|
||||
override func prepareForReuse() {
|
||||
super.prepareForReuse()
|
||||
self.imgView.kf.cancelDownloadTask()
|
||||
}
|
||||
|
||||
func configure(with image: String) {
|
||||
guard let url = URL(string: image) else { return }
|
||||
self.imgView.kf.setImage(with: url)
|
||||
self.imgView.kf.setImage(with: url, options: [
|
||||
.processor(DownsamplingImageProcessor(size: self.imgView.frame.size)),
|
||||
.scaleFactor(UIScreen.main.scale),
|
||||
.cacheOriginalImage
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
@ -51,6 +62,7 @@ class ImageGrid: UICollectionView, UICollectionViewDataSource, UICollectionViewD
|
||||
layout.minimumLineSpacing = spacing
|
||||
layout.estimatedItemSize = .zero
|
||||
self.init(frame: .zero, collectionViewLayout: layout)
|
||||
self.backgroundColor = .clear
|
||||
self.columnsCount = columns
|
||||
self.spacing = spacing
|
||||
}
|
||||
@ -87,8 +99,6 @@ class ImageGrid: UICollectionView, UICollectionViewDataSource, UICollectionViewD
|
||||
|
||||
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
|
||||
let cellSize = (self.bounds.size.width - self.spacing*(CGFloat(self.columnsCount) - 1))/CGFloat(self.columnsCount)
|
||||
print("====================================")
|
||||
print("bounds: \(self.bounds)")
|
||||
return CGSize(width: cellSize, height: cellSize)
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,19 +15,21 @@ final class ImageGridCell: Cell<[String]>, CellType {
|
||||
override func setup() {
|
||||
super.setup()
|
||||
|
||||
self.grid = ImageGrid(columns: 3)
|
||||
self.grid = ImageGrid(columns: 3, spacing: 2)
|
||||
self.grid.translatesAutoresizingMaskIntoConstraints = false
|
||||
self.contentView.addSubview(self.grid)
|
||||
NSLayoutConstraint.activate([
|
||||
self.grid.leadingAnchor.constraint(equalTo: self.contentView.leadingAnchor),
|
||||
self.grid.trailingAnchor.constraint(equalTo: self.contentView.trailingAnchor),
|
||||
self.grid.topAnchor.constraint(equalTo: self.contentView.topAnchor),
|
||||
self.grid.bottomAnchor.constraint(equalTo: self.contentView.bottomAnchor)
|
||||
self.grid.leadingAnchor.constraint(equalTo: self.contentView.layoutMarginsGuide.leadingAnchor),
|
||||
self.grid.trailingAnchor.constraint(equalTo: self.contentView.layoutMarginsGuide.trailingAnchor),
|
||||
self.grid.topAnchor.constraint(equalTo: self.contentView.layoutMarginsGuide.topAnchor),
|
||||
self.grid.bottomAnchor.constraint(equalTo: self.contentView.layoutMarginsGuide.bottomAnchor)
|
||||
])
|
||||
}
|
||||
|
||||
override func update() {
|
||||
super.update()
|
||||
self.textLabel?.text = nil
|
||||
self.detailTextLabel?.text = nil
|
||||
self.grid.set(images: row.value ?? [])
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user