У меня есть представление коллекции, основанное на пользовательских ячейках.Ячейки также имеют угловой радиус.
Так что, когда я пытаюсь сделать пик и вытолкнуть их, Rect, который я помещаю внутри "previewingContext.sourceRect", всегда имеет закругленные углы.
Первая попытка:
Я зарегистрировал представление коллекции с помощью
registerForPreviewing(with: self, sourceView: self.collectionView)
Затем я попробовал это для добавления:
guard let indexPath = collectionView?.indexPathForItem(at: location) else { return nil }
guard let cell = collectionView?.cellForItem(at: indexPath) else { return nil }
// I also tried to use the next line and than get the frame of the cell Attributes but it didn't work...
// let cellAttributes = collectionView.layoutAttributesForItem(at: indexPath)
previewingContext.sourceRect = cell.frame
Вторая попытка:
Я пытался зарегистрировать каждую ячейку и затем взять границы ячейки
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
let locationCell : CGPoint = self.collectionView.convert(location, from: self.view)
guard let indexPath = self.collectionView?.indexPathForItem(at: locationCell) else {
print(locationCell)
print("Cell Not found")
return nil
}
previewingContext.sourceRect = self.collectionView.cellForItem(at: indexPath)!.bounds
Это работает, углы срезаются идеально, но я не могу определить, какая ячейкабыл подсмотрен и задан, потому что каждый индекс пути одинаков для каждой ячейки в этом решении.
Обновление: я также пытался соединить ячейки через раскадровку, но углы все еще не обрезаны как круглые углы ..