过去,只要我处理已经属于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的东西,我想。我可以做到这个中间地带吗?或者动画内容是全部还是全部?
答案 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也是自述文件中的建议。