Ios5 当我滚动滚动滚动视图时,TableView会更改帧

Ios5 当我滚动滚动滚动视图时,TableView会更改帧,ios5,uiscrollview,expand,collapse,Ios5,Uiscrollview,Expand,Collapse,我有一个特别的问题,很简单但很可怜。从昨天开始我就一直在尝试,所以请给我一些解决方案 1) 我有一个滚动视图 2) 我有两个UIView和两个TableView 3) 我想要的是视图应该是可扩展和可折叠的 4) 所以我采用了两种观点,因为我无法隐藏UIView的一部分 5) 我所做的是,首先通过XIB隐藏第二个视图,然后单击FirstView上的按钮,我将第二个视图放在FirstView的正下方 6) 现在,由于我有两个TableView,当子视图(SecondView)未隐藏时,它们应该显示在

我有一个特别的问题,很简单但很可怜。从昨天开始我就一直在尝试,所以请给我一些解决方案

1) 我有一个滚动视图

2) 我有两个UIView和两个TableView

3) 我想要的是视图应该是可扩展和可折叠的

4) 所以我采用了两种观点,因为我无法隐藏UIView的一部分

5) 我所做的是,首先通过XIB隐藏第二个视图,然后单击FirstView上的按钮,我将第二个视图放在FirstView的正下方

6) 现在,由于我有两个TableView,当子视图(SecondView)未隐藏时,它们应该显示在第一个视图下面,并且应该将它们的框架更改为显示在子视图(SecondView)下面

7) 我所做的是将第一个表放在第一个视图的下面,隐藏视图(SecondView)的上面,第二个表放在第一个表的下面

8) 因此,当我单击第一个视图上的按钮时,我会隐藏该按钮,取消隐藏第二个视图,并更改tableVC框架,使其显示在第二个视图下方

9) 同样,当我单击第二视图上的按钮时,我会隐藏该按钮,隐藏第二视图,取消隐藏第一视图上的按钮,并更改表格框架,使其显示在第一视图下方,即初始位置

这些屏幕截图可能有用

灰色部分是第一张桌子,粉色部分是第二张桌子。

绿色部分是隐藏的展开视图,而表格VC(灰色)位于其顶部。

现在一切正常,当我滚动时,发现表视图会随机更改其帧。当我展开firstView并滚动时,表格会改变其框架并向上移动。同样,当我折叠并滚动时,同样的事情也会发生。

这是屏幕截图(我滚动时的图像)

这是我的密码:

-(IBAction)expand:(id)sender{

    if (addButton){
        [addButton setHidden:YES];
        [subView setHidden:NO];
        [objTableViewForServices setFrame:CGRectMake(7, 310, 306, 136)];
        [objTableViewForManagement setFrame:CGRectMake(7, 480, 306, 136)];
        objScrollView.contentSize = CGSizeMake(320,700);

    }
}

-(IBAction)collapse:(id)sender{
    if (subButton){
        [subView setHidden:YES];
        [addButton setHidden:NO];

        [objTableViewForServices setFrame:CGRectMake(7, 229, 306, 136)];
        [objTableViewForManagement setFrame:CGRectMake(7, 396, 306, 136)];
        objScrollView.contentSize = CGSizeMake(320,650);

    }
}
可能是滚动问题

请尽快帮助我,因为我需要在截止日期前完成这项工作

多谢各位。
致以最诚挚的问候。

这是因为自动布局和约束。有两种解决方案

1) 删除scrollview的自动布局属性


2) 如果需要自动布局,请使用适当的约束

坐标对我来说似乎有点奇怪。折叠时,仅将内容高度降低50,但第一个tableView的移动量将超过50。你确定表格视图的边框是正确的吗?@Andreastanescu:即使边框设置不正确,并且表格之间存在某种间隙,我们也可以调整边框,使其显示在我们想要的位置。我关心的是为什么滚动视图会这样。@Andreastanescu:如果需要,我可以向您发送一个演示,以便您可以查看清晰的图片/想法。那太好了。请发送。@Andreastanescu:请发送您的电子邮件地址!!!