У меня проблема, и я застрял. Не знаю, как это решить. Есть камера и несколько масок. Когда я открываю камеру и прокручиваю, чтобы выбрать одну из масок, я хочу показать объяснение, как использовать камеру с масками, и эти объяснения после появления должны исчезнуть через 3 секунды.
В viewController у меня есть:
maskExplanationLabel.configure(viewModel.maskExplanationLabel)
viewModel.shouldShowMaskExplanation()
и в modelViewController у меня есть:
var isCameraExplanationShown: Bool = false
var maskExplanationLabel: TextPresentable {
TextViewModel(text: "camera.blank.explanation".localized(),
color: .white,
font: .montserratSemiBold(21),
isHidden: isCameraExplanationShown
)
}
И функция, которая находится в нужном месте:
func shouldShowMaskExplanation() {
if isCameraExplanationShown {
return
} else {
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
self.isCameraExplanationShown = true
}
}
}
Проблема в том, что он устанавливает значение true, и метка объяснения должна скрываться, но она скрывается только при выборе другой маски.
Я знаю, что самым простым способом было бы добавить dispatchQueue в viewController, но это прекрасно сработало бы, но я не хочу слишком сильно "tra sh" viewController. В swiftUI я бы использовал @State, но как это сделать с UIKit? Пожалуйста, помогите :) Спасибо!