我只是想问为什么我的“IF”声明现在不起作用,早些时候工作正常,我刚刚为iPad制作了一个版本,然后它再也不起作用了。这是我的if语句。
- (void)textFieldDidChanges{
if ([self.feet1.text isEqualToString:@"0"])
self.feet1.backgroundColor = [UIColor grayColor];
if([self.feet2.text isEqualToString:@"0"])
self.feet2.backgroundColor = [UIColor grayColor];
if([self.feet3.text isEqualToString:@"0"])
self.feet3.backgroundColor = [UIColor grayColor];
if([self.feet4.text isEqualToString:@"0"])
self.feet4.backgroundColor = [UIColor grayColor];
if([self.feet5.text isEqualToString:@"0"])
self.feet5.backgroundColor = [UIColor grayColor];
if([self.feet6.text isEqualToString:@"0"])
self.feet6.backgroundColor = [UIColor grayColor];
if([self.feet7.text isEqualToString:@"0"])
self.feet7.backgroundColor = [UIColor grayColor];
if([self.feet8.text isEqualToString:@"0"])
self.feet8.backgroundColor = [UIColor grayColor];
if([self.feet9.text isEqualToString:@"0"])
self.feet9.backgroundColor = [UIColor grayColor];
if([self.feet10.text isEqualToString:@"0"])
self.feet10.backgroundColor = [UIColor grayColor];
if([self.feet11.text isEqualToString:@"0"])
self.feet11.backgroundColor = [UIColor grayColor];
if([self.feet12.text isEqualToString:@"0"])
self.feet12.backgroundColor = [UIColor grayColor];
if([self.feet13.text isEqualToString:@"0"])
self.feet13.backgroundColor = [UIColor grayColor];
if([self.feet14.text isEqualToString:@"0"])
self.feet14.backgroundColor = [UIColor grayColor];
if([self.feet15.text isEqualToString:@"0"])
self.feet15.backgroundColor = [UIColor grayColor];
if([self.feet15.text isEqualToString:@"0"])
self.feet15.backgroundColor = [UIColor grayColor];
if([self.feet16.text isEqualToString:@"0"])
self.feet16.backgroundColor = [UIColor grayColor];
if([self.feet17.text isEqualToString:@"0"])
self.feet17.backgroundColor = [UIColor grayColor];
if([self.feet18.text isEqualToString:@"0"])
self.feet18.backgroundColor = [UIColor grayColor];
if([self.feet19.text isEqualToString:@"0"])
self.feet19.backgroundColor = [UIColor grayColor];
if([self.feet20.text isEqualToString:@"0"])
self.feet20.backgroundColor = [UIColor grayColor];
if([self.feet21.text isEqualToString:@"0"])
self.feet21.backgroundColor = [UIColor grayColor];
if([self.feet22.text isEqualToString:@"0"])
self.feet22.backgroundColor = [UIColor grayColor];
if([self.feet23.text isEqualToString:@"0"])
self.feet23.backgroundColor = [UIColor grayColor];
if([self.feet24.text isEqualToString:@"0"])
self.feet24.backgroundColor = [UIColor grayColor];
if([self.feet25.text isEqualToString:@"0"])
self.feet25.backgroundColor = [UIColor grayColor];
if([self.feet26.text isEqualToString:@"0"])
self.feet26.backgroundColor = [UIColor grayColor];
if([self.feet27.text isEqualToString:@"0"])
self.feet27.backgroundColor = [UIColor grayColor];
if([self.feet28.text isEqualToString:@"0"])
self.feet28.backgroundColor = [UIColor grayColor];
if([self.feet29.text isEqualToString:@"0"])
self.feet29.backgroundColor = [UIColor grayColor];
if([self.feet30.text isEqualToString:@"0"])
self.feet30.backgroundColor = [UIColor grayColor];
if([self.feet31.text isEqualToString:@"0"])
self.feet31.backgroundColor = [UIColor grayColor];
if([self.feet32.text isEqualToString:@"0"])
self.feet32.backgroundColor = [UIColor grayColor];
if([self.feet33.text isEqualToString:@"0"])
self.feet33.backgroundColor = [UIColor grayColor];
if([self.feet34.text isEqualToString:@"0"])
self.feet34.backgroundColor = [UIColor grayColor];
if([self.feet35.text isEqualToString:@"0"])
self.feet35.backgroundColor = [UIColor grayColor];
if([self.feet36.text isEqualToString:@"0"])
self.feet36.backgroundColor = [UIColor grayColor];
if([self.feet37.text isEqualToString:@"0"])
self.feet37.backgroundColor = [UIColor grayColor];
if([self.feet38.text isEqualToString:@"0"])
self.feet38.backgroundColor = [UIColor grayColor];
if([self.feet39.text isEqualToString:@"0"])
self.feet39.backgroundColor = [UIColor grayColor];
if([self.feet40.text isEqualToString:@"0"])
self.feet40.backgroundColor = [UIColor grayColor];
if([self.feet41.text isEqualToString:@"0"])
self.feet41.backgroundColor = [UIColor grayColor];
if([self.feet42.text isEqualToString:@"0"])
self.feet42.backgroundColor = [UIColor grayColor];
if([self.feet43.text isEqualToString:@"0"])
self.feet43.backgroundColor = [UIColor grayColor];
if([self.feet44.text isEqualToString:@"0"])
self.feet44.backgroundColor = [UIColor grayColor];
if([self.feet45.text isEqualToString:@"0"])
self.feet45.backgroundColor = [UIColor grayColor];
if([self.feet46.text isEqualToString:@"0"])
self.feet46.backgroundColor = [UIColor grayColor];
if([self.feet47.text isEqualToString:@"0"])
self.feet47.backgroundColor = [UIColor grayColor];
if([self.feet48.text isEqualToString:@"0"])
self.feet48.backgroundColor = [UIColor grayColor];
if([self.feet49.text isEqualToString:@"0"])
self.feet49.backgroundColor = [UIColor grayColor];
if([self.feet50.text isEqualToString:@"0"])
self.feet50.backgroundColor = [UIColor grayColor];
//HIDDEN YES
if ([self.feet1.text length] == 0)
self.feet1.hidden = YES;
if([self.feet2.text length] == 0)
self.feet2.hidden = YES;
if([self.feet3.text length] == 0)
self.feet3.hidden = YES;
if([self.feet4.text length] == 0)
self.feet4.hidden = YES;
if([self.feet5.text length] == 0)
self.feet5.hidden = YES;
if([self.feet6.text length] == 0)
self.feet6.hidden = YES;
if([self.feet7.text length] == 0)
self.feet7.hidden = YES;
if([self.feet8.text length] == 0)
self.feet8.hidden = YES;
if([self.feet9.text length] == 0)
self.feet9.hidden = YES;
if([self.feet10.text length] == 0)
self.feet10.hidden = YES;
if([self.feet11.text length] == 0)
self.feet11.hidden = YES;
if([self.feet12.text length] == 0)
self.feet12.hidden = YES;
if([self.feet13.text length] == 0)
self.feet13.hidden = YES;
if([self.feet14.text length] == 0)
self.feet14.hidden = YES;
if([self.feet15.text length] == 0)
self.feet15.hidden = YES;
if([self.feet15.text length] == 0)
self.feet15.hidden = YES;
if([self.feet16.text length] == 0)
self.feet16.hidden = YES;
if([self.feet17.text length] == 0)
self.feet17.hidden = YES;
if([self.feet18.text length] == 0)
self.feet18.hidden = YES;
if([self.feet19.text length] == 0)
self.feet19.hidden = YES;
if([self.feet20.text length] == 0)
self.feet20.hidden = YES;
if([self.feet21.text length] == 0)
self.feet21.hidden = YES;
if([self.feet22.text length] == 0)
self.feet22.hidden = YES;
if([self.feet23.text length] == 0)
self.feet23.hidden = YES;
if([self.feet24.text length] == 0)
self.feet24.hidden = YES;
if([self.feet25.text length] == 0)
self.feet25.hidden = YES;
if([self.feet26.text length] == 0)
self.feet26.hidden = YES;
if([self.feet27.text length] == 0)
self.feet27.hidden = YES;
if([self.feet28.text length] == 0)
self.feet28.hidden = YES;
if([self.feet29.text length] == 0)
self.feet29.hidden = YES;
if([self.feet30.text length] == 0)
self.feet30.hidden = YES;
if([self.feet31.text length] == 0)
self.feet31.hidden = YES;
if([self.feet32.text length] == 0)
self.feet32.hidden = YES;
if([self.feet33.text length] == 0)
self.feet33.hidden = YES;
if([self.feet34.text length] == 0)
self.feet34.hidden = YES;
if([self.feet35.text length] == 0)
self.feet35.hidden = YES;
if([self.feet36.text length] == 0)
self.feet36.hidden = YES;
if([self.feet37.text length] == 0)
self.feet37.hidden = YES;
if([self.feet38.text length] == 0)
self.feet38.hidden = YES;
if([self.feet39.text length] == 0)
self.feet39.hidden = YES;
if([self.feet40.text length] == 0)
self.feet40.hidden = YES;
if([self.feet41.text length] == 0)
self.feet41.hidden = YES;
if([self.feet42.text length] == 0)
self.feet42.hidden = YES;
if([self.feet43.text length] == 0)
self.feet43.hidden = YES;
if([self.feet44.text length] == 0)
self.feet44.hidden = YES;
if([self.feet45.text length] == 0)
self.feet45.hidden = YES;
if([self.feet46.text length] == 0)
self.feet46.hidden = YES;
if([self.feet47.text length] == 0)
self.feet47.hidden = YES;
if([self.feet48.text length] == 0)
self.feet48.hidden = YES;
if([self.feet49.text length] == 0)
self.feet49.hidden = YES;
if([self.feet50.text length] == 0)
self.feet50.hidden = YES;
}
我只是放了一些,因为这是一个字符限制..这是标签。 “feet1 - feet50(如上所示),inches1 - inches50,basket1 - basket50和fruits1 - fruits50 ..正如你在if语句中看到的那样我希望所有标签都有灰色背景,如果文本为0并且我希望它隐藏没有文字。顺便说一下,我使用这个计时器每秒更新一次,所以实时更新没有问题。
[NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(textFieldDidChanges)
userInfo:nil
repeats:YES];
你认为这里的问题似乎是什么?谢谢你的帮助!
编辑:我忘了把我的主要问题包括在内。问题是该语句正在首次加载应用程序,但如果指定的标签更改文本,我的意思是如果标签不再是“0”,它将保持灰色。并且即使我知道标签上有文字,所有隐藏的标签也会保持隐藏状态。
答案 0 :(得分:7)
for (UILabel *aLabel in yourArrayOfLabels)
{
[self modifyAppearnceOfLabel:aLabel];
}
-(void)modifyAppearanceOfLabel:(UILabel*)aLabel
{
if ([[aLabel text] length] == 0)
[aLabel setHidden:YES];
else
[aLabel setHidden:FALSE];
if ([[aLabelText text] isEqualToString:@"0"])
[[aLabel setBackgroundColor:[UIColor lightGray]];
else
[[aLabel setBackgroundColor:theColorYouWant]];
}
答案 1 :(得分:6)
从您显示的代码中,您只能设置为隐藏和灰色。你永远不会设置为可见或其他颜色。那是你的'问题'。
但是你的代码非常低效。根据您的描述,使用计时器似乎完全是错误的方法。
您应该在数组中包含所有这些文本字段。您应该是文本字段的委托,并专门响应每个文本字段中的更改。
另外,我猜你有一百万个IBOutlets。最好在代码中创建这些文本字段并使用算法将它们布局(而不是将所有出口分配到数组中)。因此,当您迭代所需数量的文本字段时,您会递增计数器并使用该计数器来计算文本字段应该位于的frame.origin
,创建文本字段,添加委托,添加为子视图,添加到数组。
但是,当您将控制器添加为委托时,您可能根本不需要数组......
答案 2 :(得分:0)
您可以使用UITextField Delegate
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
if(textField == self.feet1)
{
if([string isEqualToString:@"0"])
{
//Do something
textField..backgroundColor = [UIColor grayColor];
}
}
else if(textField == self.feet2)
{
if([string isEqualToString:@"0"])
{
//Do something
textField..backgroundColor = [UIColor grayColor];
}
}
.
.
.
.
}
It is better to add all textField objects in a NSMutableArray and update the array contents to decrease number of lines of code like
for(NSInteger index = 0; index< 15; index++)
{
UITextField *txt = [array objectAtIndex:i];
//change the properties you want.
txt.backgroundColor = [UIColor grayColor];
}