4

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

1) 我有一个带有 ScrollView 的视图。

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

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

4)所以我采取了两个视图,因为我无法隐藏 UIView 的一部分。

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

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

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

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

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

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

在此处输入图像描述

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

在此处输入图像描述

绿色部分是隐藏的扩展视图,tableVC(灰色)位于其顶部。

现在一切正常,当我遇到滚动时,表格视图会随机更改其框架。当我展开 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);

    }
}

可能是一些滚动问题。

请尽快帮助我,因为我需要在截止日期前完成。

谢谢你。此致。

4

1 回答 1

0

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

1) 移除滚动视图的自动布局属性

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

于 2013-08-05T07:56:33.773 回答