Добавьте PHLivePhotoView в раскадровку - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь поместить PHLivePhotoView в WelcomeVideoItemViewController, используя раскадровку. Для этого настраивается представление с пользовательским классом: Custom class (PHLivePhotoView)

Иерархия сцен:
Hierarchy of a ViewController

Реализация пользовательского View Controller:

class WelcomeVideoItemViewController: UIViewController, PHLivePhotoViewDelegate {
    @IBOutlet weak var livePhotoView: PHLivePhotoView!

    @IBOutlet weak var tipImageView: UIImageView!

    @IBOutlet weak var tipLabel: UILabel!


    override func viewDidLoad() {
        super.viewDidLoad()

        print(livePhotoView)
        // Optional(<UIView: 0x7fd161f200b0; frame = (0 0; 320 568); autoresize = RM+BM; layer = <CALayer: 0x60000134ac60>>)

        // Crash here
        livePhotoView.delegate = self
    }
}

Таким образом, проблема в том, что livePhotoView инициализируется с экземпляром UIView, что приводит к сбою, так как UIView не имеет свойства delegate. Как я могу заставить этот пользовательский класс работать?

Xcode 10.2, iOS 12.2, Swift 4.2

1 Ответ

1 голос
/ 12 апреля 2019

Я нашел обходной путь для этого.Сначала создайте пользовательский PHLivePhotoView подкласс:

import PhotosUI

class LivePhotoView: PHLivePhotoView {
}

Затем перетащите View на раскадровку и установите для него собственный класс:

Custom Class

Не забудьте проверить Inherit Module From Target.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...