繁体   English   中英

UIView动画在UITableViewCell中无法正常工作

[英]UIView animation doesn't work properly inside UITableViewCell

我有一个UITableViewCell,其中包含一个UIView,当调用TableViewCell的awakeFromNib()时会对其进行动画处理。 动画确实适用于出现TableViewController时调用的单元格,但滚动时生成的单元格根本不移动。 我该如何解决? 我在Github上添加了一个示例来演示该问题。

TableViewController

import UIKit

class ViewController: UITableViewController {

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 20
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! TableViewCell

    return cell
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

TableViewCell

import UIKit

class TableViewCell: UITableViewCell {

@IBOutlet weak var animatorCell: UIView!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    UIView.animateWithDuration(0.3, delay: 0.0, options: [.CurveEaseInOut, .Repeat, .Autoreverse], animations: { () -> Void in
        self.animatorCell.transform = CGAffineTransformMakeTranslation(0, 10)
        }, completion: nil)
}

}

我不确定,但是由于您使用的是dequeueReusableCell ,所以我猜没有调用awakeFromNib 使用awakeFromNib初始化第一个单元格,但是接下来的单元格将是相同的单元格,可以重复使用,因此不会使用awakeFromNib初始化它们。 如果我错了, awakeFromNib 称为下一个细胞,那么我想它进入屏幕之前,动画完成。

无论哪种方式,您都可以尝试在tableView(_:willDisplayCell:forRowAtIndexPath:)使用诸如tableView(_:willDisplayCell:forRowAtIndexPath:)here )之类的东西,然后从那里调用单元格上的动画方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM