我遇到setNeedsDisplay的问题.我有一个带有很多子UIViews的UIView,在Inteface Builder中创建.我还有一个带有IBAction的按钮.在这个IBAction中我想重绘/重新加载所有UIViews(或所有UIElements,如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]];
detailviewcontroller没有viewcontroller,只是uiviews,这里是hierarchie:
> UIView
– UIViewContainer
— UIView0
— UIView1
— UIViewStapel
我期望做什么:
*我不想重置UIView,我想改变它们的背景和内容. *
我在我的detailview中有很多子视图(uiviews),见上面的hierarchie.我在UIViews中显示内容,内容来自coreData.
view1包含coreData的当前行.
view0包含coreData的前一行.
viewStapel包含coreData的下一行.
使用IBAction我想迭代coreData行,如果调用了动作,则显示当前的下一行……依此类推.
在Log中,数据已更改,但未在UIViews中显示.因此我需要重绘或重新加载或类似的东西,以显示当前数据.
编辑2:已解决
我把代码放在一个新方法中,调用这个方法解决了我的问题.