Files
divkit/client/ios/Sample/DivKitSample/DivHostViewController.swift
T
pkurchatov 27a3472171 Enabled blankLinesBetweenImports swiftformat rule
commit_hash:84ea24cbdf21ef89741080f38ec5e583172a2458
2024-12-20 12:41:02 +03:00

43 lines
1.2 KiB
Swift

import DivKit
import DivKitExtensions
import UIKit
final class DivHostViewController: UIViewController {
lazy var divKitComponents = makeDivKitComponents()
lazy var divView = DivView(divKitComponents: divKitComponents)
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(divView)
Task {
await configureDivView()
}
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
divView.frame = view.bounds.inset(by: view.safeAreaInsets)
}
private func configureDivView() async {
let url = Bundle.main.url(forResource: "Sample", withExtension: "json")!
let data = try! Data(contentsOf: url)
await divView.setSource(
.init(kind: .data(data), cardId: "Sample"),
debugParams: DebugParams(isDebugInfoEnabled: true)
)
}
private func makeDivKitComponents() -> DivKitComponents {
let extensionHandlers = [PinchToZoomExtensionHandler(overlayView: view)]
let customBlockFactory = SampleDivCustomBlockFactory()
let urlHandler = SampleDivActionHandler(hostViewController: self)
return DivKitComponents(
divCustomBlockFactory: customBlockFactory,
extensionHandlers: extensionHandlers,
urlHandler: urlHandler
)
}
}