Я пытаюсь создать собственное представление календаря Google и хочу добавить метку к табличному виду в позиции, где значение времени события равно значению метки ячейки. но фрейм для indexPath отличается для случая, когда он находится в cellForRowAt, и когда я первоначально обновляю позицию фрейма метки в функции.
Ниже приведен мой код, пожалуйста, проверьте и дайте мне знать, что здесь не так?
private func getIndexPathForCell() {
for event in self.events {
if let startIndexItem = self.slotsTime.firstIndex(where: {$0 == event.fromDate}), let endIndexItem = self.slotsTime.firstIndex(where: {$0 == event.toDate}) {
let indexPath = IndexPath(row: startIndexItem, section: 0)
let indexPath2 = IndexPath(row: endIndexItem, section: 0)
let rect = self.calendarTableView.rectForRow(at: indexPath)
// let rectInScreen = self.calendarTableView.convert(rect, to: calendarTableView.superview)
let labelFrame = CGRect(x: 85.0, y: rect.minY, width: self.view.width - 100, height: CGFloat(90 * (indexPath2.row - indexPath.row)))
let label = PaddingLabel(frame: labelFrame)
label.backgroundColor = event.type == 0 ? AppColors.backgroundPink : AppColors.appTextBlueColor35
label.textColor = AppColors.white
label.layer.cornerRadius = 8.0
label.numberOfLines = 0
label.clipsToBounds = true
label.font = AppFonts.sfRoundedMedium.withSize(15.0)
label.textAlignment = .justified
label.text = event.title
label.isUserInteractionEnabled = true
self.calendarTableView.addSubview(label)
self.indexPaths.append(indexPath)
self.indexPaths.append(indexPath2)
self.calendarTableView.reloadData()
}
}
}
, но в ячейке для строки в прямоугольной позиции другая, поэтому моя метка не может быть размещена в правильной позиции.