Swift:点击按钮显示带动画的子视图

时间:2016-07-20 05:55:25

标签: ios swift xcode animation uiviewanimation

我想在用户按下按钮时将子视图隐藏为false。此子视图的不透明度在设计时设置为60%。从存在按钮的位置开始,子视图应该以平滑动画显示。

Screenshot for question

以下是我尝试过的代码:

 @IBAction func moreOptions_Clicked(sender: AnyObject) { print("moreOptions clicked")

  UIView.animateWithDuration(0.9, delay: 0.2, options: UIViewAnimationOptions.TransitionCurlDown, animations: {
      //self.objMoreView.hidden = false
      // Show view with animation
  }, completion: nil)}

这没有用。任何解决方案?

2 个答案:

答案 0 :(得分:1)

.hidden = false替换为.alpha = 1,它应该有效;)

说明:

如果您想为UI对象的“可见性”制作动画:

alpha初始值设为0 (您的对象将被“隐藏”) 在动画期间,将其值设置为1 UIView.animateWithDuration()将为0设置动画 - > 1在持续时间内通过所有值进行更改。你将有一个动画,逐步显示你的子视图。

如果您想为UI对象的位置或大小设置动画:

yourObject.frame.size.(height or width)

yourObject.frame.origin.(x or y)

希望我帮助过你。

答案 1 :(得分:0)

您也可以使用约束来执行此操作。 例如,在视图中为按钮设置顶部约束。 保留对该约束的引用:

echo '<h1>'.$list.'</h1>';

然后,只要您想要显示按钮,请将此约束的常量设置为您需要的任何值。 最后只需用一个很好的弹簧效果来制作它。这会产生这样的结果:

self.whatEverTopButtonConstraint = NSLayoutConstraint(item: self.whatEverButton, attribute: .Top, relatedBy: .Equal, toItem: self.whatEverSubView, attribute: .Top, multiplier: 1, constant: 0)
self.whatEverSubView.addConstraint(self.whatEverTopButtonConstraint)

当然,此代码仅垂直设置位置动画。如果你想让它在水平的同一时刻移动,例如从右边缘设置一个约束,然后就在动画调用之前设置它的常量;)