手势动作后UILabel不会改变

时间:2014-09-30 16:05:13

标签: ios objective-c uilabel

我在使用从WebService下载信息的应用程序时遇到了一些麻烦。

我在故事板中有各种UILabel定义,这是与IBOutlet连接,从应用程序的开始我下载de info并放入一个数组,然后在第一次加载时将字符串放在UILabel中。这个想法是当用户使用向左滑动的手势时,UILabel中的文本必须改变。

但是在我的方法动作中,当滑动手势时,我把这个UILabel的文本改为UILabel,当我测试时,UILabel没有改变。我只是用一个数组的字符串设置文本。

我做错了什么?还有另外一种方法吗?这种方式不是正确的最佳做法吗?为什么文字不会改变?


关于代码,这是滑动手势的完整方法操作,在该部分中,它假设更改UILabel的文本。

NSInteger total = [places count];

    UISwipeGestureRecognizerDirection direction = [(UISwipeGestureRecognizer *) sender direction];

    CATransition *transition = [CATransition animation];
    transition.duration = 1.0f;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault];
    transition.type = kCATransitionPush;


    switch (direction) {
        case UISwipeGestureRecognizerDirectionLeft:
            if (imageIndex==total-1) {
                imageIndex = 0;
            }
            else
            {
                imageIndex++;
            }
            transition.subtype = kCATransitionFromRight;
            break;
        case UISwipeGestureRecognizerDirectionRight:
            if (imageIndex==0) {
                imageIndex = total-1;
            }
            else
            {
                imageIndex--;
            }
            transition.subtype = kCATransitionFromLeft;
            break;

        default:
            break;
    }




    place = [places objectAtIndex:imageIndex];

    review.text=@"HOLA";//[place objectForKey:@"review"];

    phones.text = [place objectForKey:@"number"];
    directions.text = [place objectForKey:@"directions"];
    mainTitle.text = [place objectForKey:@"name"];

    principalImage.image = [UIImage imageWithData: [NSData dataWithContentsOfURL:[NSURL URLWithString:[place objectForKey:@"image_url"]]]];
    //self.typeFoodIcon.image = [UIImage imageNamed:[typefoodimages objectAtIndex:imageIndex]];
    mainLogo.image = [UIImage imageWithData: [NSData dataWithContentsOfURL:[NSURL URLWithString:[place objectForKey:@"logo_url"]]]];
    /*NSString * key = [NSString stringWithFormat:@"%ld",(long)imageIndex];
    UIAlertView * check = [[UIAlertView alloc]initWithTitle:nil message:[place objectForKey:@"review"] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [check show];*/

    [principalImage.layer addAnimation:transition forKey:nil];

2 个答案:

答案 0 :(得分:0)

首先检查您的控件是否要进行手势操作,在其中标记一些断点,如果您提供当前工作代码的某些代码会更好

答案 1 :(得分:0)

我认为这是UILabel的常见问题,因为此控件默认禁用用户交互。确保您已启用userInteraction(通过"检查"它在XIB /故事板中或以编程方式设置它。这应该开始发送手势事件。