Как реализовать плавающую анимацию для элементов в ячейке табличного представления при использовании функции 3D Touch Peek? - PullRequest
0 голосов
/ 06 июня 2018

Я реализовал 3D Touch Peek & Poop в своем приложении, используя следующий пример кода:

extension ParentVC: UIViewControllerPreviewingDelegate
{
    func previewingContext(_ previewingContext: UIViewControllerPreviewing,
                           viewControllerForLocation location: CGPoint) -> UIViewController?
    {
        guard let indexPath = mmTableView?.indexPathForRow(at: location) else { return nil }

        guard let cell = myTableView.cellForRow(at: indexPath) else { return nil }

        guard let detailsVC = storyboard?.instantiateViewController(withIdentifier: "ChildVC") as?
            ChildVC else {
                return nil
        }

        detailsVC.manager = manager

        guard let detailsManager = detailsVC.manager else {
            return nil
        }
        previewingContext.sourceRect = cell.frame

        return detailsManager.previewDetails(indexPath: indexPath, detailsVC: detailsVC)
    }

    func previewingContext(_ previewingContext: UIViewControllerPreviewing,
                           commit viewControllerToCommit: UIViewController)
    {
        navigationController?.pushViewController(viewControllerToCommit,
                                                 animated: true)
    }
}

class ParentVC: UIViewController
{
    var manager = Manager()

    override func viewDidLoad()
    {
        super.viewDidLoad()

        if traitCollection.forceTouchCapability == UIForceTouchCapability.available
        {
            registerForPreviewing(with: self,
                                  sourceView: myTableView)
        }

        ...
}

class Manager: NSObject
{
    ...

        public func previewClothingDetails(indexPath: IndexPath, detailsVC: ChildVC) -> ChildVC
    {
        // Set text and image in ChildVC here

        detailsVC.preferredContentSize = CGSize(width: 0.0,
                                                height: 320.0)

        return detailsVC
    }
}

Результат:

enter image description here

Что мне нравится в достижении , это то, что можно увидеть в iOS App Store:

enter image description here

Есливы замечаете, что при запуске жеста 3D Peek текст, изображение, а также кнопка GET имеют анимацию popping и выглядят как плавающие , но ячейка не перемещается с ним, в отличие от моего.

Как я могу дублировать эту анимацию?

...