Xcode - оператор If продолжает отображать UILabel - PullRequest
0 голосов
/ 14 января 2011

Эй, мне нужна помощь с оператором if, который, похоже, не работает.

По сути, у меня есть UILabel, который отображает результат гоночной серии. Теперь, если этот раунд еще не был проведен, результаты не должны быть там и не отображать UILabel.

Я поместил значение 'NA' в метку (не применимо) и запустил оператор if, чтобы сказать, что если результаты этих данных равны NA, тогда не беспокойтесь о создании метки. Но он все равно делает это и выводит на него данные «NA».

Вот мой код:

- (void)viewDidLoad {

    // Create the scroll view for this view
    scrollView = [[UIScrollView alloc] initWithFrame:self.view.frame];
    scrollView.contentSize = CGSizeMake(320, 220);
    [scrollView setFrame:CGRectMake(0, 180, 320, 188)];

    // Create all the non-changing labels
    UILabel *date_title = [[UILabel alloc] initWithFrame:scrollView.bounds];
    date_title.textColor = [UIColor whiteColor];
    date_title.text = @"Event date:";
    date_title.font = [UIFont boldSystemFontOfSize:12];
    [date_title setBackgroundColor:[UIColor clearColor]];
    [date_title setFrame:CGRectMake(10, 35, 100, 12)];
    [scrollView addSubview:date_title];
    [date_title release];

    UILabel *direction_title = [[UILabel alloc] initWithFrame:scrollView.bounds];
    direction_title.textColor = [UIColor whiteColor];
    direction_title.text = @"Direction:";
    direction_title.font = [UIFont boldSystemFontOfSize:12];
    [direction_title setBackgroundColor:[UIColor clearColor]];
    [direction_title setFrame:CGRectMake(10, 55, 100, 12)];
    [scrollView addSubview:direction_title];
    [direction_title release];

    UILabel *tracklength_title = [[UILabel alloc] initWithFrame:scrollView.bounds];
    tracklength_title.textColor = [UIColor whiteColor];
    tracklength_title.text = @"Track Length:";
    tracklength_title.font = [UIFont boldSystemFontOfSize:12];
    [tracklength_title setBackgroundColor:[UIColor clearColor]];
    [tracklength_title setFrame:CGRectMake(10, 75, 100, 12)];
    [scrollView addSubview:tracklength_title];
    [tracklength_title release];

    UILabel *winner2010_title = [[UILabel alloc] initWithFrame:scrollView.bounds];
    winner2010_title.textColor = [UIColor whiteColor];
    winner2010_title.text = @"2010 Winners";
    winner2010_title.font = [UIFont boldSystemFontOfSize:12];
    [winner2010_title setBackgroundColor:[UIColor clearColor]];
    [winner2010_title setFrame:CGRectMake(10, 105, 300, 12)];
    [scrollView addSubview:winner2010_title];
    [winner2010_title release];

    winner2011_title = [[UILabel alloc] initWithFrame:scrollView.bounds];
    winner2011_title.textColor = [UIColor whiteColor];
    winner2011_title.font = [UIFont boldSystemFontOfSize:12];
    [winner2011_title setBackgroundColor:[UIColor clearColor]];
    [winner2011_title setFrame:CGRectMake(10, 160, 300, 12)];
    [scrollView addSubview:winner2011_title];
    [winner2011_title release];

    // Do the labels for the round_name
    name = [[UILabel alloc] initWithFrame:scrollView.bounds];
    name.textColor = [UIColor whiteColor];
    name.font = [UIFont boldSystemFontOfSize:16];
    [name setBackgroundColor:[UIColor clearColor]];
    [name setFrame:CGRectMake(10, 10, 280, 16)];
    [scrollView addSubview:name];
    [name release];

    // Do the labels for the round_date
    dates = [[UILabel alloc] initWithFrame:scrollView.bounds];
    dates.textColor = [UIColor whiteColor];
    dates.font = [UIFont systemFontOfSize:12];
    [dates setBackgroundColor:[UIColor clearColor]];
    [dates setFrame:CGRectMake(110, 35, 200, 12)];
    [scrollView addSubview:dates];
    [dates release];

    // Do the labels for the round_direction
    direction = [[UILabel alloc] initWithFrame:scrollView.bounds];
    direction.textColor = [UIColor whiteColor];
    direction.font = [UIFont systemFontOfSize:12];
    [direction setBackgroundColor:[UIColor clearColor]];
    [direction setFrame:CGRectMake(110, 55, 200, 12)];
    [scrollView addSubview:direction];
    [direction release];

    // Do the labels for the round_track_length
    track_length = [[UILabel alloc] initWithFrame:scrollView.bounds];
    track_length.textColor = [UIColor whiteColor];
    track_length.font = [UIFont systemFontOfSize:12];
    [track_length setBackgroundColor:[UIColor clearColor]];
    [track_length setFrame:CGRectMake(110, 75, 200, 12)];
    [scrollView addSubview:track_length];
    [track_length release];

    // Do the labels for the 2010 winners
    winner2010 = [[UILabel alloc] initWithFrame:scrollView.bounds];
    winner2010.textColor = [UIColor whiteColor];
    winner2010.font = [UIFont systemFontOfSize:12];
    winner2010.numberOfLines = 0;
    [winner2010 setBackgroundColor:[UIColor clearColor]];
    [winner2010 setFrame:CGRectMake(10, 120, 300, 30)];
    [scrollView addSubview:winner2010];
    [winner2010 release];

    // Do the labels for the 2011 winners
    winner2011 = [[UILabel alloc] initWithFrame:scrollView.bounds];
    winner2011.textColor = [UIColor whiteColor];
    winner2011.font = [UIFont systemFontOfSize:12];
    winner2011.numberOfLines = 0;
    [winner2011 setBackgroundColor:[UIColor clearColor]];
    [winner2011 setFrame:CGRectMake(10, 175, 300, 30)];
    [scrollView addSubview:winner2011];
    [winner2011 release];

    // Add the content to the main scrollview
    [self.view addSubview:scrollView];
    [scrollView release];

}


- (void)viewDidAppear:(BOOL)animated {

    if(![round_2011_winner isEqualToString:@"NA"]){
        winner2011_title.text = @"2011 Winners";
        winner2011.text = round_2011_winner;
    }

    name.text = round_name;
    dates.text = round_date;
    direction.text = round_direction;
    track_length.text = round_track_length;
    winner2010.text = round_2010_winner;

}

Теперь я установил окно предупреждения, чтобы показать, каково значение, когда представление загружается, и это значение является правильным, если оно запустилось, оно показывает значение того, кто выиграл, и когда оно не запускалось, оно показывает значение NA.

Может ли это быть из-за того, что UILabel имеет значение numberofline = 2? Какое-то отношение к возвращению символа или что-то еще?

Метка также находится внутри прокрутки.

1 Ответ

1 голос
/ 14 января 2011

Попробуйте использовать

if (![round_2011_winner isEqualToString:@"NA"]) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...