当我滚动 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 内的 Recyclerview 滚动不顺畅
滚动 ScrollView 时经常不经意间进入 ScrollView 的子项之一