Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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_Ios_Ios5_Ios4 - Fatal编程技术网

Objective c 如何垂直移动UITableView

Objective c 如何垂直移动UITableView,objective-c,ios,ios5,ios4,Objective C,Ios,Ios5,Ios4,我创建了一个小型iPhone应用程序。我放了UITableView,在单元格中放了一些UIView。我添加了在单元格中水平移动视图的功能。现在,如果我在UIView中垂直移动手指,我想添加逻辑来垂直移动整个UITableView。这是我的代码: -(void)moveView:(UIPanGestureRecognizer *)recognizer { if([recognizer state] == UIGestureRecognizerStateBegan) {

我创建了一个小型iPhone应用程序。我放了UITableView,在单元格中放了一些UIView。我添加了在单元格中水平移动视图的功能。现在,如果我在UIView中垂直移动手指,我想添加逻辑来垂直移动整个UITableView。这是我的代码:

-(void)moveView:(UIPanGestureRecognizer *)recognizer
{

    if([recognizer state] == UIGestureRecognizerStateBegan)
    {
        CGPoint location = [recognizer locationInView:[self superview]];
        prevPos = location;
        startPosition = self.frame.origin.x;

    }
    else if([recognizer state] == UIGestureRecognizerStateChanged)
    {
        CGPoint location = [recognizer locationInView:[self superview]];
        float delX =  location.x - prevPos.x;
        float delY =  location.y - prevPos.y;
        if(delX > 0 && delX * delX > delY * delY)
        {
            CGPoint np = CGPointMake(self.frame.origin.x+delX, self.frame.origin.y);
            CGRect fr = self.frame;
            fr.origin = np;
            self.frame = fr;
            prevPos = location;
        }
        else if(delX * delX < delY * delY)
        {

        }
    }
    else if([recognizer state] == UIGestureRecognizerStateEnded ||
            [recognizer state] == UIGestureRecognizerStateFailed ||
            [recognizer state] == UIGestureRecognizerStateCancelled)
    {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.5];

        CGRect rect = self.frame;
        rect.origin.x = startPosition;
        self.frame = rect;
        startPosition = 0;
        [UIView commitAnimations];
    }
}
-(void)移动视图:(UIPangestureRecognitor*)识别器
{
if([Recognitor state]==UIgestureRecognitzerState开始)
{
CGPoint location=[识别器位置视图:[自超视图]];
prevPos=位置;
startPosition=self.frame.origin.x;
}
else if([Recognitor state]==UIgestureRecognitzerStateChanged)
{
CGPoint location=[识别器位置视图:[自超视图]];
float delX=位置x-前置位置x;
浮动delY=位置y-前位置y;
如果(delX>0&&delX*delX>delY*delY)
{
CGPoint np=CGPointMake(self.frame.origin.x+delX,self.frame.origin.y);
CGRect fr=自帧;
fr.origin=np;
self.frame=fr;
prevPos=位置;
}
else if(delX*delX
在这种情况下,我应该输入什么代码:
else if(delX*delX


谢谢

如果要滚动TableView,需要更改TableView的contentOffset属性


查看文档

如果要滚动TableView,需要更改TableView的contentOffset属性


查看文档

谢谢您的回答!它可以工作,但不能作为tableView的标准行为。是否可以将控件传递给UITableView?为什么要自己滚动tableView?tableView本身不是在滚动吗?如果不是为什么?我不知道如何用英语解释。如果我像往常一样滚动表格视图-它可以工作。如果我尝试用手指按scrool表视图,但要在tablecell中按UIView。此视图具有防止standart表格视图滚动的手势识别器。如果手指垂直移动,我需要将控制权传递给表格视图。谢谢您的回答!它可以工作,但不能作为tableView的标准行为。是否可以将控件传递给UITableView?为什么要自己滚动tableView?tableView本身不是在滚动吗?如果不是为什么?我不知道如何用英语解释。如果我像往常一样滚动表格视图-它可以工作。如果我尝试用手指按scrool表视图,但要在tablecell中按UIView。此视图具有防止standart表格视图滚动的手势识别器。如果手指垂直移动,我需要将控件传递给表格视图。