У меня есть некоторый код, который создает группу UITextViews
и переводит их в другое представление. Я изменяю backgroundColor на чередующиеся цвета и всегда устанавливаю textColor на черный. Все они работают хорошо, за исключением последнего, который он создает. Тот меняет свой textColor на тот, которым является backgroundColor текстового представления, а затем прекращает обновлять свой интерфейс.
Если я проверяю значение textColor проблемного в GDB, оно становится черным, даже если оно не отображается таким образом. Затем я изменяю его программно (нажимаю кнопку, перебираю все созданные текстовые представления и устанавливаю textColors все на фиолетовый цвет), они все меняются, за исключением последнего, цвет фона которого совпадает с цветом текста. Опять же, когда я проверяю в GDB значение textColor, оно устанавливается в фиолетовый цвет, хотя это не отражается на экране.
WTF?!?!?! Есть идеи? Может ли это быть просто ошибкой?
Вот код, который я использую для добавления UITextViews
. У меня есть UILabels между ними, поэтому я могу получить центрированный текст.
UIColor *evenColor = [self RGBColorR:90 G:95 B:90];
UIColor *oddColor = [self RGBColorR:70 G:75 B:70];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
// Loop through adding the buttons.
for (int i = 0; i < numberOfSections; i++) {
// Add the label for the actual title of the level.
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, ((i * sectionHeight) - 1), self.levelLablesView.frame.size.width, 30)];
[label setText:[levels objectAtIndex:i]];
label.font = [UIFont fontWithName:@"Helvetica-Bold" size:24];
[label setTextAlignment:UITextAlignmentCenter];
[label setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
if (i % 2 == 0) {
// It's an even number.
[label setBackgroundColor:evenColor];
} else {
// Its an odd number.
[label setBackgroundColor:oddColor];
}
[self.levelLablesView addSubview:label];
[label release];
// Add a scrolling UITextView for the other stuff.
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, ((i * sectionHeight) + 24), self.levelLablesView.frame.size.width, (sectionHeight - 24))];
[textView setText:[[[dictionary objectForKey:self.chosenCategory]
objectForKey:[levels objectAtIndex:i]]
objectForKey:@"Description"]];
[textView setEditable:NO];
[textView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
if (i % 2 == 0) {
// It's an even number.
[textView setBackgroundColor:evenColor];
} else {
// Its an odd number.
[textView setBackgroundColor:oddColor];
}
if (i == (numberOfSections-1)) {
[textView setFrame:CGRectMake(0,((i * sectionHeight) + 24), self.levelLablesView.frame.size.width, ((sectionHeight - 24) + 2))];
}
textView.font = [UIFont systemFontOfSize:24];
[textView setTextColor:[UIColor blackColor]];
[self.levelLablesView addSubview:textView];
[textView release];
}
}
Редактировать: Если кому-то интересно, я не устанавливаю цвет текста где-либо еще в программе случайно. Я нашел «textColor», и единственные совпадения, которые я получил, не имеют значения.