在类型方法类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我假设在我的班级函数中没有正确处理这个问题,问题是什么?
答案 0 :(得分:0)
首先,您的labelAnimation
方法以递归方式调用自身(而不仅仅是一次,但在三个地方),导致堆栈溢出。其次,如果您计划将视图的transform
属性设置为self
,那么为什么labelAnimation
是类方法而不是实例方法?
要解决此问题,请从第一行中删除class
关键字,并将其余代码中的labelAnimation()
替换为实际包含{{{1}的属性名称(不含parens) 1}}实例。
另一个观察:让触发动画的方法返回视图似乎没有意义。你确定要这么做吗?