在ViewDidLoad上的按钮上应用动画

时间:2013-04-07 02:24:52

标签: iphone ios objective-c xcode uiviewanimation

尝试在加载视图时在按钮上制作动画所以我在ViewDidLoad中编写以下代码

 ScanBtnVIEW.alpha=0;
ScanBtnVIEW=[[UIView alloc]initWithFrame:CGRectMake(78,-10,164,164)];

[self startAnimation];

然后在viewDidLoad之外我实现了StartAnimation方法,如下所示

-(void)startAnimation{
[UIView animateWithDuration:1.0
                      delay:0.0
                    options: UIViewAnimationOptionCurveLinear
                 animations:^{
                     ScanBtnVIEW.alpha=1;
                     //ScanBtnVIEW=[[UIView alloc]initWithFrame:CGRectMake(78,260,164,164)];
                     ScanBtnVIEW.frame = CGRectMake(78,260,164,164);

                 }
                 completion:^(BOOL finished){
                     NSLog(@"Done!");
                 }];

}

但实际上从App加载视图后,按钮没有出现。 请注意,我将按钮放在imageView中,以便我可以轻松地应用动画。 任何人都可以帮忙解决这个问题,我将不胜感激

2 个答案:

答案 0 :(得分:1)

在动画块中,您重新分配了 ScanBtnView

你可以试试这个:

ScanBtnVIEW.frame = CGRectMake(78,260,164,164)];

答案 1 :(得分:0)

问题1

  

在加载视图时尝试在按钮上制作动画

别。加载视图就是:加载视图。所有发生的事情是视图控制器已获得self.view。没有暗示视图即将出现在接口中,事实上它可能不是。开始设置动画的时间是视图出现在界面中,例如viewDidAppear:

问题2

ScanBtnVIEW=[[UIView alloc]initWithFrame:CGRectMake(78,-10,164,164)];

很好,所以你做了一个UIView。但你从来没有把 放在界面中!所以当然你永远不会看到它。你基本上只是创建它然后把它放在地板上。有什么意义呢?

问题3

ScanBtnVIEW.alpha=0;
ScanBtnVIEW=[[UIView alloc]initWithFrame:CGRectMake(78,-10,164,164)];

哦,太好了。所以现在你已经知道你已经拥有一个名为ScanBtnView的视图。但是之后你把那个扔掉了,并用你创建的完整的视图替换了它(alloc),然后你把它放在了地板上! 那个有多奇怪?

很可能,你想说:

ScanBtnVIEW.alpha=0;
ScanBtnVIEW.frame = CGRectMake(78,-10,164,164)];