在快速静态错误中为自定义 UIView 设置动画

Posted

技术标签:

【中文标题】在快速静态错误中为自定义 UIView 设置动画【英文标题】:Animating custom UIView in swift static error 【发布时间】:2017-03-26 13:32:06 【问题描述】:

我正在尝试为自定义 UIView 设置动画,但它给了我错误: 静态成员“animate”不能用于“Tyle”类型的实例

这是我的课:

class Tile: UIView 

var actualPosition:Position = Position(dimX: 0,dimY: 0)
var correctPosition:Position = Position(dimX: 0,dimY: 0)

var imageView: UIImageView = UIImageView()

override init(frame: CGRect) 
    super.init(frame: frame)
    addSubview(imageView)
    imageView.translatesAutoresizingMaskIntoConstraints = false


required init?(coder aDecoder: NSCoder) 
    fatalError("init(coder:) has not been implemented")


这是我正在使用的代码:

for i in 0...self.tilesMovedIndex.count - 1 
        let view = self.gameTiles[self.tilesMovedIndex[i]]
        view.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: 

        , completion: nil)
    

我想我在创建类时遗漏了一些东西,或者我应该使用另一个函数但我看不到问题。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

animate 是一个静态方法。所以应该是

UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: 

    , completion: nil)

【讨论】:

但是我可以用我的类(它是 UIView 的子类)来做吗? @JaimeAlcántaraArnela 当然。在块内,您可以在 UIView 的任何子类上执行动画。 你好,我在想视图必须是我要移动的视图。我的错误,问题解决了。

以上是关于在快速静态错误中为自定义 UIView 设置动画的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableViewCell 中为自定义 UIButton 设置动画

iPhone 在 IB 中为自定义 UIView 创建 UIButton

为自定义活动指示器视图使 UIView 半透明

在 UIView 中为多个形状设置动画

在 UICollectionView 中为特定单元格设置动画

在具有“弹出”效果的 MKMapView 中为 MKAnnotationView 设置动画自定义标注