Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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 有没有办法使UITableView的某些部分不可滚动?_Objective C_Uiswipegesturerecognizer - Fatal编程技术网

Objective c 有没有办法使UITableView的某些部分不可滚动?

Objective c 有没有办法使UITableView的某些部分不可滚动?,objective-c,uiswipegesturerecognizer,Objective C,Uiswipegesturerecognizer,我正在使用纸折叠动画在桌面视图上显示屏幕顶部的一些内容 现在我有一个按钮可以触发这个折叠动作 我想通过从上到下的开关触发这个动作。但是我的TableView是全屏的,所以我想如果有办法使UITableViewCell或表格的一部分不可滚动,那么它就会触发折叠滑动 我尝试使用UISweepGestureRecognitor,但效果不太好 有几种方法可以阻止UITableView滚动。UITableView是UIScroll view的一个子类,因此可以使用UIScroll view方法来停止表视图

我正在使用纸折叠动画在桌面视图上显示屏幕顶部的一些内容

现在我有一个按钮可以触发这个折叠动作

我想通过从上到下的开关触发这个动作。但是我的TableView是全屏的,所以我想如果有办法使UITableViewCell或表格的一部分不可滚动,那么它就会触发折叠滑动


我尝试使用UISweepGestureRecognitor,但效果不太好

有几种方法可以阻止UITableView滚动。UITableView是UIScroll view的一个子类,因此可以使用UIScroll view方法来停止表视图的滚动。因此,在tableViewController中,您可以调用
[[self tableView]setScrolEnabled:NO]
。您还应该能够通过调用
[[self tableView]setUserInteractionEnabled:NO]
(UIView上的一种方法)来停止表视图上的任何用户交互

您可以将UITableView子类化并覆盖
setContentOffset:
方法(另一个scrollView方法),并且只有在您确实希望表格视图滚动时才调用
[super setContentOffset:
(您可能还需要覆盖其他方法)

您还可以使用scrollView使用的平移手势识别器,这使您能够准确地看到scrollView获取的滚动信息,并且您可以相应地调整滚动偏移量
[[self tableView]panGestureRecognizer]
。一旦您有了PangESTURE识别器,您应该能够使用
[UIPangestureRecognitzer RequiremgestureRecognitzerToFail:
。这意味着滚动视图使用的平移手势识别器只有在滑动失败时才会开始工作,您可能需要进行设置,以便滑动手势识别器在未在屏幕边缘附近启动时失败