Я запускаю приведенный ниже код (упрощенный для важных блоков), пытаясь создать анимацию бокового меню, как в этом видео: https://www.youtube.com/watch?v=ej5laXv2dzQ&vl=en. Я пытаюсь сделать весь проект без использования раскадровки ( слышал, что это хорошая практика, я новичок в разработке для iOS, смеется), что означает, что мне нужно программно создать маску для бокового меню, и я изменил некоторый код в соответствии со своими потребностями. Однако всякий раз, когда я запускаю приведенный ниже код, изображение, на котором я устанавливаю маску, исчезает. Программа строит, но вид изображения бокового меню просто не появляется (изображение показано ниже). Куда я иду не так? Спасибо.
let maskView: UIImageView = {
let iv = UIImageView()
iv.backgroundColor = .blue
return iv
}()
let sideMenu: UIImageView = {
let iv = UIImageView()
iv.image = "example.png"
iv.frame.origin.x = -80 //Setting side menu image view to off the left side of the screen so that it can slide in when tapped
return iv
}()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(maskView)
view.addSubview(sideMenu)
maskView.translatesAutoresizingMaskIntoConstraints = false
maskView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
maskView.widthAnchor.constraint(equalTo: 60).isActive = true
maskView.heightAnchor.constraint(equalTo: view.frame.height).isActive = true
sideMenu.translatesAutoresizingMaskIntoConstraints = false
sideMenu.rightAnchor.constraint(equalTo: view.leftAnchor).isActive = true // So when tapped, it slides 80px to the right, entering the screen
sideMenu.widthAnchor.constraint(equalTo: 80).isActive = true
sideMenu.heightAnchor.constraint(equalTo: view.frame.height).isActive = true
sideMenu.mask = maskView // this is always the line that makes the sideMenu disappear
}
Изображение проблемы (должен иметь белый фон для бокового меню слева):
Изображение