我可以在任意UIView变量上设置动画吗?

时间:2016-05-03 21:49:48

标签: ios swift animation uiview core-animation

过去,只要我处理已经属于UIKit框架的属性,我就已经使用了data.sampleData.childData.childChildData动画。

最近,我创建了一个自定义UIView控件,显示一些日历/调度行为并支持无限滚动。什么控制滚动位置是一个简单的NSDate变量,我已声明如下:

 try{
                Connection conn = DriverManager.getConnection("dbinfo");
                String query = "UPDATE Patient SET  
          PatID=?,FirstName=?,LastName=?,Address=?,City=?,Phone=?,MedID=? ` `WHERE PatID=? AND MedID=?";

                PreparedStatement pst = conn.prepareStatement(query);
                pst.setString(1, pid);
                pst.setString(2, fn );
                pst.setString(3, ln );
                pst.setString(4, add );
                pst.setString(5, city );
                pst.setString(6, phone );
                pst.setString(7, mid );
                 pst.setString(8, mid );//this last two
                pst.setString(9, pid);

                pst.executeUpdate();
                JOptionPane.showMessageDialog(null, "Patient Updated");
                pst.close();

            }catch(Exception ex){
                ex.printStackTrace();
            }

只要UIView发生变化,事情就会奏效。使用var position = NSDate().mondayMorning() { didSet { self.setNeedsDisplay() } }

设置滚动甚至更简单
position

当我尝试在UIPanGestureRecognizer案例中实施贴花动作时,棘手的部分就出现了。理想情况下,我想要某种struct StartState { static var position:NSDate = NSDate() } switch pan.state { case .Began: StartState.position = self.position case .Changed: let translation = pan.translationInView(self).y self.position = StartState.position - ((7 * 24).hours / self.cellWidth * translation) case .Cancelled: self.position = StartState.position default: break } 咒语,但尽管有很多试验和错误,但我没有任何工作要做。在过去,我已经能够做我自己的自定义这样的东西,但在那些情况下,我在搞乱布局,所以我只是让我的动画块为.Ended,但在这种情况下,我想要沿曲线修改此NSDate值并驱动后续显示更新。无法找到有用的东西,我只是采用了高中物理并做了我自己的事情:

UIView.animationWithDuration(... .CurveEaseOut)

这很有效。但如果可以在这里利用CoreAnimation的东西,我想。我可以做到这个中间地带吗?或者动画内容是全部还是全部?

1 个答案:

答案 0 :(得分:0)

我还没有遇到过使用UIView动画API而不涉及CoreAnimation的方法。你当然可以使用CoreAnimation和Apple提供一些nice example code for this。还有an objc.io article about this topic

我确实找到了适用于UIView动画的this solution,但实际上underneath accomplishes this behaviour using CoreAnimation也是自述文件中的建议。