Пик и всплывающее окно с проблемой просмотра углового радиуса - PullRequest
0 голосов
/ 28 января 2019

У меня есть представление коллекции, основанное на пользовательских ячейках.Ячейки также имеют угловой радиус.

Так что, когда я пытаюсь сделать пик и вытолкнуть их, 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

Это работает, углы срезаются идеально, но я не могу определить, какая ячейкабыл подсмотрен и задан, потому что каждый индекс пути одинаков для каждой ячейки в этом решении.

Обновление: я также пытался соединить ячейки через раскадровку, но углы все еще не обрезаны как круглые углы ..

...