如果我为tableview单元格设置动画,则表格视图滚动不会停止

时间:2016-01-24 18:54:24

标签: ios iphone swift uitableview

我正在尝试在tableview单元格中添加动画,动画效果很好。但是当我试图通过点击它不停止来阻止tableview的滚动。通常在滚动的tableview中,如果我们点击屏幕,滚动就会停止。但是,当我添加这些不起作用的动画时。下面是我用于动画的代码

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    let rotationTransform = CATransform3DScale(CATransform3DIdentity, 0.4, 0.4, 0)

    cell.layer.transform = rotationTransform
    UIView.animateWithDuration(0.5) { () -> Void in
        cell.layer.transform = CATransform3DIdentity
    }
}

3 个答案:

答案 0 :(得分:6)

注意:

这是使用animateWithDuration ...方法之一的动画的正常行为。如果您想在动画期间进行用户交互,您可以尝试下面我已经显示的内容。

只需要尝试这样:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    let rotationTransform = CATransform3DScale(CATransform3DIdentity, 0.4, 0.4, 0)
    cell.layer.transform = rotationTransform

    UIView.animateWithDuration(0.5, delay: 0.5, options: UIViewAnimationOptions.AllowUserInteraction, animations: { () -> Void in
        cell.layer.transform = CATransform3DIdentity
        }, completion: nil)
}

希望它对你有所帮助。

答案 1 :(得分:1)

你在这里遇到的主要问题是UIView动画,默认情况下,在动画进行过程中禁用动画视图的触摸。您可以通过切换到public function save_category(){ $this->load->model('super_Admin_Model', 'model'); //May be you forget this. $data= array( 'category_name' => $this->input->post('category_name',TRUE), 'category_description' => $this->input->post('category_description',TRUE), 'publication_status' => $this->input->post('publication_status',TRUE) ); $this->model->save_category_info($data); $sdata=array(); $sdata['message']="Save Category information successfully"; $this->session->set_userdata($sdata); redirect('super_admin/add_category'); } 方法并添加UIViewAnimationOptions+animateWithDuration:options:delay:animations:completion:来更改此行为,如下所示:

AllowUserInteraction

答案 2 :(得分:-1)

您可以在动画视图上方添加透明UIView(与单元格大小相同),一旦触摸和/或动画完成后,从子视图中删除视图。