у меня проблемы с setNeedsDisplay. У меня есть UIView с множеством дополнительных UIView, созданных в Inteface Builder. У меня также есть кнопка с IBAction. В этом IBAction я хочу перерисовать/перезагрузить все UIViews (или все UIElement, такие как UILabel, UIWebView и т. д.)
Я делаю это, что у меня не работает, не знаю почему.. :
//redraw the UIViews
[self.view_card_0 setNeedsDisplay];
[self.view_card_1 setNeedsDisplay];
[self.view_card_stapel setNeedsDisplay];
//other UI Elements
[self.webView_0 setNeedsDisplay];
[self.webView_1 setNeedsDisplay];
[self.webView_stapel setNeedsDisplay];
[self.lblCardTitle_0 setNeedsDisplay];
[self.lblCardTitle_1 setNeedsDisplay];
[self.lblCardTitle_stapel setNeedsDisplay];
[self.img_card_0 setNeedsDisplay];
[self.img_card_1 setNeedsDisplay];
[self.img_card_stapel setNeedsDisplay];
Что делать для перерисовки/перезагрузки/обновления всех UIElements/UIViews и Subviews?
ИЗМЕНИТЬ 1:
Как загрузить представление:
detailViewController = [[DetailViewController alloc]
initWithNibName:@"DetailViewController_iPad" bundle:[NSBundle mainBundle]];
Контроллер просмотра деталей не имеет контроллера просмотра, только UIViews, здесь иерархия:
- UIView
-- UIViewContainer
--- UIView0
--- UIView1
--- UIViewStapel
Что я собираюсь сделать:
*Я не хочу сбрасывать UIView, я хочу изменить фон и их содержимое. *
В моем подробном представлении много подвидов (uiviews), см. выше иерархию. Я показываю содержимое в UIViews, содержимое поступает из coreData.
Представление1 содержит текущую строку coreData.
Представление0 содержит предыдущую строку coreData.
ViewStapel содержит следующую строку coreData.
С помощью IBAction я хочу перебирать строки coreData, отображать следующую строку в текущей, если действие вызывается... и т.д..
В журнале данные меняются, но не отображаются в UIViews. Из-за этого мне нужно перерисовать или перезагрузить или что-то в этом роде, чтобы отобразить текущие данные.
РЕДАКТИРОВАНИЕ 2: РЕШЕНО
Я поместил код в новый метод, и вызов этого метода решил мою проблему.
-setNeedsDisplay
для какого-либо другого элемента пользовательского интерфейса ничего не дает, потому что, если элемент пользовательского интерфейса должен обновить свое отображение (в ответ на изменение свойств), он уже вызвал этот метод для самого себя. - person Lily Ballard   schedule 24.01.2012