Rumah > Soal Jawab > teks badan
CGRect frame= self.bg.frame;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2];
long tag=sender.tag;
switch (tag) {
case 10:
frame.origin.y-=30;
break;
case 20:
frame.origin.y+=30;
break;
default:
break;
}
self.bg.frame=frame;
[UIView commitAnimations];
中间这部分代码将被执行动画。
我有一个比较奇葩的问题,就是这部分动画代码,编译器是如何获得的呢?
我的心里是这么想的,当然是伪代码表述:就是用String去截取,把这段代码截取出来去执行。。
求教。。
还有顺便一个问题,我一起问了吧。
self.bg.frame=frame;这样位置就变了。。那么OC或者说IOS肯定是不断监听这个属性的变化的。。那么IOS中事件模型是怎样的呢?
大家讲道理2017-04-24 09:16:03
Ada cara lain, iaitu ia mesti dilaksanakan secara berurutan. . . Hanya apabila commitAnimations dicapai ialah penyerahan sebenar.
- (IBAction)move:(UIButton *)sender {
CGRect frame= self.bg.frame;
[UIView beginAnimations:nil context:nil];
NSLog(@"执行到了这里beginAnimations");
[UIView setAnimationDuration:2];
NSLog(@"执行到了这里setAnimationDuration");
long tag=sender.tag;
switch (tag) {
case 10:
frame.origin.y-=30;
break;
case 20:
frame.origin.y+=30;
break;
default:
break;
}
self.bg.frame=frame;
NSLog(@"执行到了这里2");
[UIView commitAnimations];
NSLog(@"commitAnimations");
}
Hasil operasi:
2015-08-28 1520.020 02 Kalkulator [1403:73936] Pelaksanaan sampai di sini bermulaAnimasi
2085-08-2015 🎜> 20.021 02 Kalkulator [1403:73936] Pelaksanaan sampai di sini setAnimationDuration2015-08-28 15
10.3936 capaian [02.022] 20.022 di sini 2 2015-08-28 15
20.022 02 Kalkulator[1403:73936] commitAnimations