当我滚动ScrollView时,TableView更改框架

时间:2013-07-26 05:46:11

标签: ios5 uiscrollview expand collapse

我有这个特定的问题,简单但非常可怜。自昨天以来一直在尝试这个,所以请给我一些解决方案。

1)我有一个ScrollView视图。

2)我有两个UIView和两个TableView。

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

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

5)我所做的是我最初通过XIB隐藏第二个视图,点击FirstView上的按钮,我取消隐藏第一个放置在FirstView下方的视图

6)现在,因为我有两个TableView应该显示在第一个视图下面,并且应该更改它们的框架以显示在subView(SecondView)下面,而不隐藏subView(SecondView)。

7)我做的是将第一张桌子放在第一张视图下方,隐藏视图(第二视图)上方和第一张桌子下面的第二张桌子上。

8)所以当我点击第一个视图上的按钮时,我隐藏了该按钮并取消隐藏了SecondView并更改了tableVC框架,使其显示在第二个视图下方。

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

这些屏幕截图可能很有用。

enter image description here

灰色部分是第一个表格,粉红色部分是第二个表格。

enter image description here

绿色部分是隐藏的扩展视图,而桌面VC(灰色)位于其上方。

现在一切正常,当我遇到滚动时,表视图会随机更改其框架。当我展开firstView并滚动表时,更改其框架并向上移动。同样,当我崩溃和滚动时,同样的事情发生。

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

enter image description here

这是我的代码:

-(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 个答案:

答案 0 :(得分:0)

IT因为自动布局&约束。有两种解决方案,

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

2)如果你想要自动布局,那么使用适当的约束