UIView 动画打破 TableView

Posted

技术标签:

【中文标题】UIView 动画打破 TableView【英文标题】:UIView Animation breaks TableView 【发布时间】:2014-02-28 15:06:32 【问题描述】:

我在 UIView 中嵌入了一个 UITableView。当一个单元格被选中时,TableView 会使用 UIView Animation 向左滑动,以便显示下面的详细信息。当我将表格视图滑回其原始框架时,表格视图可以滚动到 Warpper 视图中其他元素的顶部。在动画之前,您只能在表格视图的边界内上下滚动表格视图单元格。为什么会这样?

- (void)slideTableView:(BOOL)reset


    //Current pos
    CGRect newTableViewFrame = self.tableView.frame;

    //Determine direction based on current pos
    int newX;

    if (reset || newTableViewFrame.origin.x < 0) 
        newX = newTableViewFrame.origin.x=0;
    
    else 
        newX = newTableViewFrame.origin.x - 280;
    

    newTableViewFrame.origin.x =newX;

    CGFloat animationDuration = 0.2;
    CGFloat animationDelay = 0.0;

    [UIView animateWithDuration:animationDuration delay:animationDelay options:UIViewAnimationOptionCurveEaseInOut
                 animations:^

                     self.tableView.frame=newTableViewFrame;

                 
                 completion:^(BOOL finished)


                 ];

【问题讨论】:

我之前在视图中添加了一个阴影并使用了:self.clipsToBounds = NO; self.layer.masksToBounds = NO;简单地设置回解决上述问题: self.clipsToBounds = YES; self.layer.masksToBounds = YES; 【参考方案1】:

我之前在视图中添加了阴影并使用了:

self.clipsToBounds = NO; 
self.layer.masksToBounds = NO; 

只需设置回即可解决上述问题:

self.clipsToBounds = YES;  
self.layer.masksToBounds = YES; 

【讨论】:

以上是关于UIView 动画打破 TableView的主要内容,如果未能解决你的问题,请参考以下文章

GSAP 动画正在打破页面底部

从视图控制器动画负 y 原点打破约束

自定义推送动画打破默认交互式弹出动画

TD 内的动画打破了表格边框:奇怪的 chrome 错误?

缩放动画在放大和缩小时打破边界半径

iOS动画1 — UIView动画