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

Posted

技术标签:

【中文标题】当我滚动 ScrollView 时,TableView 更改框架【英文标题】:TableView Changes Frame When i Scroll the ScrollView 【发布时间】:2013-07-26 06:40:49 【问题描述】:

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

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

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

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

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

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

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

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

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);

    

可能是一些滚动问题。

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

谢谢。 最好的问候。

【问题讨论】:

坐标对我来说有点奇怪。折叠时,您只会从内容高度减少 50,但第一个 tableView 会移动更多。你确定表格视图的框架是正确的吗? @AndreiStanescu :即使框架设置不正确并且表格之间存在某种间隙,我们也可以调整框架以使其显示在我们想要的位置。我担心的是为什么滚动视图是以这种方式行事。 @AndreiStanescu : 如果需要,我可以给你发一个演示,这样你就可以有一个清晰的图片/想法。 那太好了。请发送。 @AndreiStanescu:请提供您的电子邮件地址!!! 【参考方案1】:

由于自动布局和约束而导致的 IT。有两种解决方案,

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

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

【讨论】:

以上是关于当我滚动 ScrollView 时,TableView 更改框架的主要内容,如果未能解决你的问题,请参考以下文章

在 ScrollView 中滚动 TableView

ScrollView 内的 Recyclerview 滚动不顺畅

滚动视图内的不可滚动的tableview

滚动 ScrollView 时经常不经意间进入 ScrollView 的子项之一

ScrollView中的Horizo​​ntal RecyclerView:垂直滚动时如何获得焦点?

在 ScrollView 中查看问题