菜鸟教程小白 发表于 2022-12-12 12:41:42

ios - UICollectionView 单元格没有选择翻转动画, View 丢失


                                            <p><p>didSelect 方法上的 UICollectionView 单元格翻转动画应该与单击的索引单元格的详细信息一起翻转,如果用户想要转到原始 View ,应该能够在单元格上看到。
我正在使用</p>

<pre><code> UICollectionViewCell* cell = ;
    [UIView animateWithDuration:1.0
                        delay:0
                        options:(UIViewAnimationOptionAllowUserInteraction)
                     animations:^
   {

         [UIView transitionFromView:cell.contentView
                           toView:cell.contentView
                           duration:.5
                            options:UIViewAnimationOptionTransitionFlipFromRight
                         completion:nil];
   }
                     completion:^(BOOL finished)
   {

   }
   ];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在您的代码中,动画将您从 View 中移除并显示到 View 。因此,在集合中,如果内容 View 被移除,那么它如何返回。
所以,不要删除 View ,只需隐藏它。</p>

<p>请使用以下代码</p>

<pre><code>CVCell* cell1 = (CVCell *);
[UIView transitionWithView:cell1.contentView
                  duration:5
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^{

                  if (cell1.isred) {
                     cell1.isred = NO;
                        cell1.greenview.hidden = NO;
                        cell1.redView.hidden=YES;
                  } else {
                        cell1.isred = YES;
                        cell1.greenview.hidden = YES;
                        cell1.redView.hidden=NO;
                  }

                } completion:nil];
</code></pre>

<p>greenview 是第一个 View ,redview 是第二个添加到单元格上的 View 。
现在,当翻转第一个 greenview 时,会显示 redview 并隐藏 redview,下一次反之亦然</p>

<p>你可以试试其他动画</p>

<pre><code>    CATransition *animation = ;
    animation.delegate = self;
    animation.duration = 2.6f;
    animation.timingFunction = UIViewAnimationCurveEaseInOut;
    animation.fillMode = kCAFillModeForwards;
    animation.startProgress = 0.1;
    animation.endProgress = 1.0;
    animation.removedOnCompletion = YES;
    animation.type = @&#34;cube&#34;;//---
animation.subtype = (cell1.isred)?kCATransitionFromLeft:kCATransitionFromRight;
[CATransaction setCompletionBlock:^{
                  if (cell1.isred) {
                     cell1.isred = NO;
                        cell1.greenview.hidden = NO;
                        cell1.redView.hidden=YES;
                  } else {
                        cell1.isred = YES;
                        cell1.greenview.hidden = YES;
                        cell1.redView.hidden=NO;
                  }
}];

;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - UICollectionView 单元格没有选择翻转动画, View 丢失,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26879959/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26879959/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - UICollectionView 单元格没有选择翻转动画, View 丢失