В том же viewController
у меня есть calendarTableView
, которые представляют дни месяца. На cellForRowAt
я выбираю строку, соответствующую текущему дню, и вызываю функцию для заполнения timeSlotCollectionView
. Все это работает, но у меня немного странная ситуация.
Случай 1: строка height
= авто и scrollPosition.none
= timeSlotCollectionView
не следуют cornerRadius
Case2: строка height
= авто и scrollPosition.middle
= поток 1: EXC_BAD_ACCESS (код = 2, адрес = 0x659ef4) в calendarTableView
определение ячейки
Case3: строка height
= 44 и scrollPosition.none = calendarTableView
ячейка не следует cornerRadius
Случай 4: строка height
= 44 и scrollPosition.middle
= calendarTableView
ячейка не следует cornerRadius
Случай 5: строка heigh
t = 60 и scrollPosition.none
= calendarTableView
ячейка ДОЛЖНА следовать cornerRadius
Случай 6: строка height
= 60 и scrollPosition.middle
= calendarTableView
ячейка НЕ повторяет cornerRadius
снова ..
Я бы не стал возражать против высоты строки 60, но scrollPosition
должен быть m.mddle, иначе я бы не увидел строку текущего дня ..
Вы видите, что я делаю не так? Я искал другие посты, но не смог найти ничего, что дало бы мне понять, в чем проблема.
Большое спасибо, как обычно.
Это функция calendarTableView
:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "calendarCell", for: indexPath) as! CalendarTableViewCell
// Configure the cell...
let date = datesArray[indexPath.row]
print(date)
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day, .weekday], from: date)
cell.dayLabel.text = "\(String(describing: components.day!))" + " " + "\(dayNamesArray[components.weekday! - 1])"
cell.cellWeekday = components.weekday!
print("cell weekday is: \(cell.cellWeekday!)") // prints correct weekday
cell.cellId = "\(String(format:"%04d", components.year!))" + "\(String(format:"%02d", components.month!))" + "\(String(format:"%02d", components.day!))"
self.selectedDate = cell.cellId // used for time slots cellId
print("##################### selectedDate in tableview is :\(self.selectedDate) ")
// highlighting current day cell
if indexPath.row == self.actualDay - 1 && self.actualMonth == self.displayedMonth {
cell.dayLabel.backgroundColor = UIColor.red.withAlphaComponent(0.3)
// emulate user selecting the cell
tableView.selectRow(at: indexPath, animated: false, scrollPosition: UITableViewScrollPosition.none) // changing to .middle makes the tableview go looping
print(" @@@@@@@@@@@@@@@@@@@@@@@@@@ selected cell weekday is: \(cell.cellWeekday!) @@@@@@@@@@@@@@@@@@@@ ")
// self.updateTimeSlots(selectedCell: cell)
// self.actualWeekday = cell.cellWeekday! // nil error
self.selectedDate = cell.cellId
// calculateOpenTimeSlots()
}
// let cornerRadius: CGFloat = 5
// cell.layer.cornerRadius = cornerRadius
// cell.clipsToBounds = true
// self.updateTimeSlots(selectedCell: cell)
return cell
}