Ios UILabel在手势动作后不会更改
我有一些麻烦与应用程序下载的信息从网络服务 我在故事板中定义了各种UILabel,它们与IBOutlet连接,从应用程序开始,我下载de info并放入数组,然后在第一次加载时将字符串放入UILabel中。这个想法是当用户使用像向左滑动这样的手势时,UILabel中的文本必须改变 但是在我的方法动作中,当我用刷卡的手势改变这个UILabel的文本时,当我测试时,UILabel没有改变。我只是用数组的字符串来设置文本 我做错了什么?还有别的办法吗?这种做法是否正确和最佳做法?为什么文本不变 关于代码,这里是用于滑动手势的完整方法操作,在这一部分中,假设更改UILabel的文本Ios UILabel在手势动作后不会更改,ios,objective-c,uilabel,Ios,Objective C,Uilabel,我有一些麻烦与应用程序下载的信息从网络服务 我在故事板中定义了各种UILabel,它们与IBOutlet连接,从应用程序开始,我下载de info并放入数组,然后在第一次加载时将字符串放入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];
首先检查您的控件是否要执行手势动作,在其中标记一些断点,如果您提供当前工作代码的一些代码会更好,我认为这是UILabel的常见问题,因为此控件默认情况下禁用了用户交互。通过在XIB/storyboard中检查userInteraction或以编程方式进行设置,确保已启用userInteraction。这将开始发送手势事件。请粘贴一些显示您当前的操作方式。用户交互模式已处于活动状态,但我不会使用UILabel与用户交互,它是静态的,并且在用户对UIImageView进行刷卡时必须更改。您是否检查了是否获得刷卡事件?UI未更新的另一个常见问题是,更新未在主线程上完成。不确定您是否是这样,但如果您使用多线程,则值得检查。嗯,这听起来像是一个解决方案,但是,我如何检查您的建议呢?在代码块中放置一个断点,在执行滑动/或更新标签的位置,以及当断点在xcode中调用它的线程的左侧面板上的调试导航器中点击check时。它应该是主线程。我觉得你和插座没有连接。你也证实了吗?事实上这很奇怪,因为一个UILabel是一个标题,标题变化很完美,但另一个不是