Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIScrollView中的UITableView-如何使视图滚动,而不是使TableView本身滚动?_Objective C_Ios_Uitableview_Uiscrollview - Fatal编程技术网

Objective c UIScrollView中的UITableView-如何使视图滚动,而不是使TableView本身滚动?

Objective c UIScrollView中的UITableView-如何使视图滚动,而不是使TableView本身滚动?,objective-c,ios,uitableview,uiscrollview,Objective C,Ios,Uitableview,Uiscrollview,想象一下,有一个UIViewController,其中包含一个UIScrollView。在视图的顶部有一个UIImageView、一些UILabel和其他内容。此外,还有一个UITableView,其内容是动态原型。我附上一张图片以说明: 我在UITableView中没有固定数量的单元格,因此它可以滚动。我的问题是:UITableView本身会滚动,但我希望滚动整个视图。这样做的最佳可能性是什么 我今天找到的可能的解决方案 1) 第一件事是:我创建一个UITableViewControlle

想象一下,有一个UIViewController,其中包含一个UIScrollView。在视图的顶部有一个UIImageView、一些UILabel和其他内容。此外,还有一个UITableView,其内容是动态原型。我附上一张图片以说明:

我在UITableView中没有固定数量的单元格,因此它可以滚动。我的问题是:UITableView本身会滚动,但我希望滚动整个视图。这样做的最佳可能性是什么


我今天找到的可能的解决方案

1) 第一件事是:我创建一个UITableViewController并声明一个标题部分,在该部分中我以编程方式包含所有标签、图像等(我希望使用interface builder实现这一点…)


2) 另一种解决方案是计算视图的高度。我尽了最大努力想这样做,但是没有成功。如果这是最好的方法:有人能举个例子吗?

我会放弃
UIScrollView
,只使用
UITableView
。只需在Interface Builder中将
UIView
对象拖动,即可将其添加为
UITableView
tableHeaderView
。现在,由于所有内容都是
UITableView
层次结构的一部分,因此所有内容都将按预期一起滚动。

您必须(如您所述)将包含图像和按钮的
UIView
添加到实际的
UITableView
。将其嵌入滚动视图将产生您看到的不希望出现的行为

我建议返回
UIView
作为表视图第一部分的标题视图。您可以通过实现
UITableViewDelegate
方法来实现这一点:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;

如果在包含图像/标签的视图中维护
IBOutlet
,则可以将其返回此处。

您还可以尝试在
滚动视图上将
延迟内容切换设置为
否。根据您的设置,这可能会使滚动视图首先响应触摸而不是表格视图

苹果:

delaysContentTouches

一个布尔值,用于确定滚动视图是否延迟 触摸手势的处理

@属性(非原子)布尔延迟内容接触

讨论

如果此属性的值为
YES
,则滚动视图会延迟处理 触摸手势,直到它可以确定滚动是否正确 意图如果该值为
NO
,则滚动视图会立即调用
触摸应开始:使用事件:在视图中:
。默认值 值为


这是同一个演示,我希望它可以帮助您从iphone sorce代码库


谢谢你

谢谢你的回答。如果我这样做,我必须以编程方式实现所有图像/标签,对吗?我想避免…不,您仍然可以使用Interface Builder,只要包含图像/标签的
UIView
被定义为
UITableViewDelegate
上的
IBOutlet
。啊,好的!现在我明白你的意思了。你说得对!非常好的解决方案,谢谢:-)非常感谢!你让我度过了美好的一天——这就像是我最喜欢的圣诞礼物;o) /用手指碰鼻子,然后火箭飞起来,所以我们的烟囱也会试试这个-似乎是另一个很好的解决方案。谢谢:-)