Я добавляю тень в ячейку, однако, когда я начинаю использовать авторазметку для установки объектов внутри ячейки, это отрицательно влияет на форму ячейки. Я пробовал разные этапы загрузки представлений / пера, но не могу понять, как правильно выбрать комбо. Что я могу сделать, чтобы разрешить использование автоматического выделения в ячейке?
Желаемый (без автоматического выделения):
Результат (после настройки метка для «равной ширины» и расстояния снизу):
Из контроллера представления:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PlacesCell", for: indexPath) as! PlacesCollectionViewCell
let shadowPath2 = UIBezierPath(rect: cell.bounds)
cell.layer.cornerRadius = 10
cell.layer.masksToBounds = false
cell.layer.shadowColor = UIColor.black.cgColor
cell.layer.shadowOffset = CGSize(width: CGFloat(2.0), height: CGFloat(6.0))
cell.layer.shadowOpacity = 0.3
cell.layer.shadowPath = shadowPath2.cgPath
cell.name.text = someObjects[indexPath.row].name
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let noOfCellsInRow = 2
let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout
let totalSpace = flowLayout.sectionInset.left
+ flowLayout.sectionInset.right
+ (flowLayout.minimumInteritemSpacing * CGFloat(noOfCellsInRow - 1))
let size = Int((collectionView.bounds.width - totalSpace) / CGFloat(noOfCellsInRow))
return CGSize(width: size, height: size)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let cell = sender as? UICollectionViewCell,
let indexPath = self.placesCollectionView.indexPath(for: cell) {
let vc = segue.destination as! PeopleViewController
vc.placeForReference = someObjects[indexPath.row] //Pass object
}
}
Класс ячейки наследуется только от UICollectionViewCell.