Objective c UIScrollView中的UITableView-如何使视图滚动,而不是使TableView本身滚动?
想象一下,有一个UIViewController,其中包含一个UIScrollView。在视图的顶部有一个UIImageView、一些UILabel和其他内容。此外,还有一个UITableView,其内容是动态原型。我附上一张图片以说明: 我在UITableView中没有固定数量的单元格,因此它可以滚动。我的问题是:UITableView本身会滚动,但我希望滚动整个视图。这样做的最佳可能性是什么Objective c UIScrollView中的UITableView-如何使视图滚动,而不是使TableView本身滚动?,objective-c,ios,uitableview,uiscrollview,Objective C,Ios,Uitableview,Uiscrollview,想象一下,有一个UIViewController,其中包含一个UIScrollView。在视图的顶部有一个UIImageView、一些UILabel和其他内容。此外,还有一个UITableView,其内容是动态原型。我附上一张图片以说明: 我在UITableView中没有固定数量的单元格,因此它可以滚动。我的问题是:UITableView本身会滚动,但我希望滚动整个视图。这样做的最佳可能性是什么 我今天找到的可能的解决方案 1) 第一件事是:我创建一个UITableViewControlle
我今天找到的可能的解决方案 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) /用手指碰鼻子,然后火箭飞起来,所以我们的烟囱也会试试这个-似乎是另一个很好的解决方案。谢谢:-)