我在使用从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];
答案 0 :(得分:0)
首先检查您的控件是否要进行手势操作,在其中标记一些断点,如果您提供当前工作代码的某些代码会更好
答案 1 :(得分:0)
我认为这是UILabel的常见问题,因为此控件默认禁用用户交互。确保您已启用userInteraction(通过"检查"它在XIB /故事板中或以编程方式设置它。这应该开始发送手势事件。