Я хочу создать приложение, которое будет отслеживать, где я провожу свое время. Простое приложение, где ячейки могут быть изменены и просто запускать таймеры при нажатии. Прошедшее время - INT, а размер ячеек - CGFloat. Я хочу, чтобы размер ячеек автоматически обновлялся в зависимости от прошедшего времени.
Я пытался вызвать метод, который имеет дело с размером ячеек при нажатии кнопки, просто чтобы посмотреть, работает ли это. Я также включил число как CGFloat в уравнении. Ни один из этих методов не сработал.
//this is the code that deals with the sizing of the cells.
override func prepare() {
// 1
guard cache.isEmpty == true, let collectionView = collectionView else {
return
}
// 2
let columnWidth = contentWidth / CGFloat(numberOfColumns)
var xOffset = [CGFloat]()
for column in 0 ..< numberOfColumns {
xOffset.append(CGFloat(column) * columnWidth)
}
var column = 0
var yOffset = [CGFloat](repeating: 0, count: numberOfColumns)
let timerCount = PhotoCell()
let savedTime = CGFloat(timerCount.counter)
// 3
for item in 0 ..< collectionView.numberOfItems(inSection: 0) {
let indexPath = IndexPath(item: item, section: 0)
// 4
let photoHeight = delegate.collectionView(collectionView, heightForPhotoAtIndexPath: indexPath)
let height = cellPadding * 2 + (photoHeight / 20 + savedTime)
let frame = CGRect(x: xOffset[column], y: yOffset[column], width: columnWidth, height: height)
let insetFrame = frame.insetBy(dx: cellPadding, dy: cellPadding)
// 5
let attributes = UICollectionViewLayoutAttributes(forCellWith: indexPath)
attributes.frame = insetFrame
cache.append(attributes)
// 6
contentHeight = max(contentHeight, frame.maxY)
yOffset[column] = yOffset[column] + height
column = column < (numberOfColumns - 1) ? (column + 1) : 0
}