2015-06-15 94 views
2

所以我想动画的容器视图的子视图在我的主要观点(本质上是子子视图),我应该创建另一个视图控制器的子视图控制子子视图或创建一个出口子子视图的主视图控制器?问题是我用一个UIButton触发动画,这也会做一些其他的事情,所以如果我创建另一个视图控制器,这个UIButton将有两个IBAction。不管怎么说,这是我的代码有主的viewController动画: 与子子视图的UIView动画

@IBAction func hourSelectorTap(gesture: UITapGestureRecognizer){ 
    if (isHourSelected){ 
     let path = UIBezierPath() 
     path.moveToPoint(CGPoint(x:100, y:8)) 
     let anim = CAKeyframeAnimation(keyPath: "MoveZeBox") 
     anim.path = path.CGPath 
     self.MinHrView.layer.addAnimation(anim, forKey: "Move") 
     isHourSelected = !isHourSelected 

    } else{ 

    } 

} 
+0

是否有意义的是子视图是由另一个视图控制器(而不是sub-subview)拥有者?只有您可以告诉我们该视图包含哪些内容以及这些内容如何相互作用,按钮的位置以及当前视图控制器在做什么...... – Wain

回答

1

我对第一个问题是,为什么,如果你不把UIViewController中的某些子类中有一个容器的看法?嵌入视图控制器的主要用途是可以切换出当前显示哪个子类UIViewController。如果你只是想要嵌套的意见,我会建议嵌套UIViews并从那里。

本质的问题是,你有一个包含一些子视图一些视图控制器,并要设置动画子视图,对不对?我想创建一个IBOutlet,说MyView的,对于我想动画视图,然后在我的按钮按下的功能,做这样的事情:

@IBAction func hourSelectorTap(gesture: UITapGestureRecognizer){ 
if (isHourSelected){ 
    UIView.animateWithDuration(0.2, animations: { 
     //your animation code here 
     self.myView.frame = CGRectMake(50,100,300,300) 
    }, completion: { 
     //anything you want to do when the animation is complete 
    }) 
} else { 

} 
} 

否则,是的,用于处理的正确方法视图控制器被嵌入到你的视图中,是为了控制视图控制器的子类,并将代码放在那里。

+0

就是这样,谢谢!我很困惑UIView.animateWithDuration如何实际工作,我有点改变了本教程的代码:http://mathewsanders.com/animations-in-swift-part-two/ – Liumx31

+0

啊,好吧很高兴它的工作! – erparker