动画块转换为Swift(类函数)

时间:2014-09-17 15:56:31

标签: ios cocoa-touch swift

在类型方法类ToolsCustomFunctions中我有

class func labelAnimation()->UILabel{

         //Start animation settings
         self.labelAnimation().transform = CGAffineTransformMakeScale(4, 4);

         UIView.animateWithDuration(0.2,
                             delay: 0.0,
            usingSpringWithDamping: 0.6,
             initialSpringVelocity: 0.8,
            options: UIViewAnimationOptions.CurveEaseInOut,

            animations:{

                //Animate

                self.labelAnimation().transform = CGAffineTransformMakeScale(1.0, 1.0)


            }, completion: { finished in


                //Animation complete


        })
        return (labelAnimation())



      }

我使用它来使用

在各种视图中执行文本动画
someLabel  =  ToolsCustomFunctions.labelAnimation()

这给了我class func labelAnimation()->UILabel{上的EXC_BAD_ACESS我假设在我的班级函数中没有正确处理这个问题,问题是什么?

1 个答案:

答案 0 :(得分:0)

首先,您的labelAnimation方法以递归方式调用自身(而不仅仅是一次,但在三个地方),导致堆栈溢出。其次,如果您计划将视图的transform属性设置为self,那么为什么labelAnimation是类方法而不是实例方法?

要解决此问题,请从第一行中删除class关键字,并将其余代码中的labelAnimation()替换为实际包含{{{1}的属性名称(不含parens) 1}}实例。

另一个观察:让触发动画的方法返回视图似乎没有意义。你确定要这么做吗?