#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
}