Cocoa 可可触控:触控按钮动画

Cocoa 可可触控:触控按钮动画,cocoa,animation,button,touch,Cocoa,Animation,Button,Touch,我有一个全屏按钮(我把它放在IB中),当用户点击它时,我想把它滑出屏幕。我知道连接正常,因为我可以在单击按钮时记录一些内容。但是我以前用来移动UIView和UIImageView的代码不起作用 -(void) movePatch : (id) sender { mainImg =[[UIButton alloc] init]; //firing up animation [UIView beginAnimations: nil context: NULL]; //setting

我有一个全屏按钮(我把它放在IB中),当用户点击它时,我想把它滑出屏幕。我知道连接正常,因为我可以在单击按钮时记录一些内容。但是我以前用来移动UIView和UIImageView的代码不起作用

-(void) movePatch : (id) sender { 

  mainImg =[[UIButton alloc] init];

 //firing up animation
 [UIView beginAnimations: nil context: NULL]; 
 //setting animation speed
 [UIView setAnimationDuration:2.0   ];

 [mainImg setFrame:CGRectMake (-320.0, 0.0, 320.0, 480.0)];

 //running animations
 [UIView commitAnimations];

 //release mainImg
 [mainImg release];
} 

如果这是所有的代码,有两件事你需要考虑;

  • mainImg(由于它是一个按钮,因此名称不正确)未放置在视图上([self.view addSubview:mainImg])

  • 我认为你不应该在犯罪后马上释放。我认为你应该在动画“didStopSelector”中这样做,从而使其成为ivar


  • 谢谢海市蜃楼。该按钮已添加到IB和我的.h文件中,名为IBMOutlet NSButton*mainImg,我是否仍需要按照您的建议将其添加到视图中?所以你认为在CA有机会移动它的位置之前,在这里释放它就是摧毁它?(我知道命名是关闭的,但我正在处理一系列不同的场景,以查看什么最有效,并厌倦了重命名)。如果您将其作为IBOutlet,则根本不要在该函数中创建和销毁它。它应该在没有代码的情况下工作。在dealloc或viewDidUnload中释放。