如果声明不起作用的话

时间:2014-02-07 12:49:17

标签: ios objective-c if-statement

我只是想问为什么我的“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”,它将保持灰色。并且即使我知道标签上有文字,所有隐藏的标签也会保持隐藏状态。

3 个答案:

答案 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];
}