Получить значение indexPath в классе UICollectionViewCell

#ios #swift #uicollectionview #nsindexpath

#iOS #swift #uicollectionview ( пользовательский просмотр ) #nsindexpath #uicollectionview

Вопрос:

У меня есть класс UICollectionViewCell следующим образом:

 class DateCollectionViewCell: UICollectionViewCell {

    let dateLabel = UILabel()
    override func awakeFromNib() {
        super.awakeFromNib()        

        dateLabel.frame = CGRectMake(0, 5, CGRectGetWidth(self.frame), CGRectGetHeight(self.frame))
        dateLabel.textAlignment = .Left
        dateLabel.font = UIFont(name: "HelveticaNeue", size: 13)

        dateLabel.adjustsFontSizeToFitWidth = false
        self.contentView.addSubview(dateLabel)

    }
}
  

Я хочу изменить Y-положение только метки ячейки моей первой строки и первого столбца, остальные метки ячеек остаются неизменными.Итак, для этого мне нужно значение indexPath, чтобы я мог проверить наличие раздела и строки текущей ячейки.

Как я могу это получить?? Есть ли какой-либо другой способ сделать то, что я хочу получить???

Комментарии:

1. Зависит от того, где вам нужно получить indexPath. Если у вас есть ячейка, вы можете получить ее следующим образом: пусть index_path=CollectionView?.indexPath(для: ячейки).

2. Источник данных вашего представления коллекции знает, какую ячейку он настраивает, поэтому он должен установить свойство для ячейки, которое сообщает ему, как отображать. Задача ячеек не в том, чтобы знать, какой indexPath он отображает.

Ответ №1:

 func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

   let cell : DateCollectionViewCell = collectionView .dequeueReusableCellWithReuseIdentifier(CellIdentifier, forIndexPath: indexPath) as! DateCollectionViewCell 

   if indexPath.section == 0 amp;amp; indexPath.row == 0  {
        // do your custom changes for the cell
    }

   return cell // your default cell
}