代码之家  ›  专栏  ›  技术社区  ›  Chirag Shah

uistackview隐藏动画工作不正常[重复]

  •  0
  • Chirag Shah  · 技术社区  · 6 年前

    此问题已经有答案:

    我不知道发生了什么,但这对我来说会发生很多时间。我使用uistackview来安排视图和动画,但是当我在uistackview中隐藏控件时,会有一些奇怪的动画存在。在这里,我附上了视频和代码。

    uiview.animate(持续时间:0.5,动画:.{
    self.viewCollectionsSpecies.ishidden=真
    })
    < /代码> 
    
    

    . 2答

    我不知道发生了什么,但这对我来说会发生很多时间。我使用uistackview来安排视图和动画,但是当我在uistackview中隐藏控件时,会有一些奇怪的动画存在。这里我附上了视频和代码。

    UIView.animate(withDuration: 0.5, animations: {
                self.viewCollectionSpecies.isHidden = true
            })
    

    3 回复  |  直到 6 年前
        1
  •  2
  •   Aakash    6 年前

    尝试

    self.viewCollectionSpecies.alpa = 0
    UIView.animate(withDuration: 0.5, animations: {
         self.viewCollectionSpecies.isHidden = true
         self.stackView.layoutIfNeeded()
    })
    

    self.viewCollectionSpecies.isHidden = true
    UIView.animate(withDuration: 0.5, animations: {
         self.stackView.layoutIfNeeded()
    })
    
        2
  •  1
  •   Chirag Shah    6 年前

    我终于知道问题出在哪里了。将有一个高度限制,我需要忘记删除后,删除该限制,它完全工作。

    self.heightConstraint.constant = 0.0
                UIView.animate(withDuration: 0.5, animations: {
                    self.viewCollectionSpecies.isHidden = true
                    self.layoutIfNeeded()
                })
    
        3
  •  0
  •   Noodledew    6 年前

    尝试使用alpha值:

    func changeViewTo(newView: UIView, oldView: UIView) {
        newView.isHidden = false
        newView.alpha = 0
        UIView.animate(withDuration:0.4, animations: {
            oldView.alpha = 0
            newView.alpha = 1
        }) { (result: Bool) in
            oldView.isHidden = true
        }
        layoutIfNeeded()
        self.stackView.layoutIfNeeded()
    }