Ios 滚动UICollectionView会导致父UIView中的UITableView将集合视图推出框架

Ios 滚动UICollectionView会导致父UIView中的UITableView将集合视图推出框架,ios,uitableview,uiview,uicollectionview,uiviewanimation,Ios,Uitableview,Uiview,Uicollectionview,Uiviewanimation,我的应用程序有一个小的UIView,隐藏在UINavigationBar后面。我已经设置了一个手势识别器,当点击导航栏时,这个“popover”(弹出窗口)会下降到视图中,下面的UITableView会下降,为它腾出空间。这很好,但是当我尝试在集合视图中滑动以加载新单元格时,表格视图会将降低的视图推回到导航栏后面 我尝试将和lldb watchpoint放在popover视图和table视图上,以查看是否可以跟踪视图帧的更改,但我似乎永远都无法到达watchpoint: (lldb) w s

我的应用程序有一个小的
UIView
,隐藏在
UINavigationBar
后面。我已经设置了一个手势识别器,当点击导航栏时,这个“popover”(弹出窗口)会下降到视图中,下面的
UITableView会下降,为它腾出空间。这很好,但是当我尝试在集合视图中滑动以加载新单元格时,表格视图会将降低的视图推回到导航栏后面

我尝试将和lldb watchpoint放在popover视图和table视图上,以查看是否可以跟踪视图帧的更改,但我似乎永远都无法到达watchpoint:

(lldb) w s v self->_drawerView->_layer
Watchpoint created: Watchpoint 3: addr = 0x7feac410b788 size = 8 state = enabled type = w
    watchpoint spec = 'self->_drawerView->_layer'
    new value: 0x00007feac410b850

(lldb) w s v self->_tableView->_layer
Watchpoint created: Watchpoint 2: addr = 0x7feac6008008 size = 8 state = enabled type = w
    watchpoint spec = 'self->_tableView->_layer'
    new value: 0x00007feac4102cf0
这是我的动画代码。我已经设置了断点,并且知道这段代码并没有导致这个错误

- (void)toggleDrawer:(UIGestureRecognizer *)recognizer {

    [UIView animateWithDuration:0.5 delay:0.0 usingSpringWithDamping:0.6f initialSpringVelocity:0.5f options:0 animations:^{
        if (lowerDrawer) {
            self.drawerView.frame = CGRectMake(self.drawerView.frame.origin.x, self.drawerView.frame.origin.y + 70, self.drawerView.frame.size.width, self.drawerView.frame.size.height);

            // lower table at same time
            self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y + 70, self.tableView.frame.size.width, self.tableView.frame.size.height - 70);

            // flip arrow
            self.arrowImageView.transform = CGAffineTransformMakeRotation(M_PI);

            lowerDrawer = NO;

        } else {
            self.drawerView.frame = CGRectMake(self.drawerView.frame.origin.x, self.drawerView.frame.origin.y - 70, self.drawerView.frame.size.width, self.drawerView.frame.size.height);

            self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y - 70, self.tableView.frame.size.width, self.tableView.frame.size.height + 70);

            // flip arrow
            self.arrowImageView.transform = CGAffineTransformMakeRotation(M_PI * 180);

            lowerDrawer = YES;
        }
    } completion:^(BOOL finished) {
        //
    }];
}

我应该如何开始调试它呢?我可以做些什么来确保集合视图在加载新单元格时不会更改其框架?

看起来这是您手动设置的坐标与脚本文件自动设置的坐标之间的冲突


请尝试检查您可能具有的任何自动约束,或取消选择故事板界面生成器中的“使用自动布局”。

我将扫描代码以查找可能调整的任何其他内容
tableView.frame
。另外,您是否有任何自动布局约束?我没有任何约束,但在“文件检查器”中取消选中“在情节提要的界面生成器文档设置中使用自动布局”有效!我不敢相信,我昨晚花了几个小时试着调试这个。谢谢你!如果你把这写为并回答,我会把它标记为已接受。完成。很高兴你能弄明白