ios uiview 如何刷新_ios – 重新加载/刷新子视图 – setNeedsDisplay不起作用

在iOS应用中,遇到一个需求是通过IBAction更新多个UIViews及其子视图的内容。尝试调用setNeedsDisplay方法来刷新视图,但未成功。问题在于视图的层次结构和数据绑定。解决方案是将刷新代码放入一个单独的方法中,并确保数据已经正确更新。最终,调用该方法成功实现了视图的重绘。
摘要由CSDN通过智能技术生成

我遇到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:已解决

我把代码放在一个新方法中,调用这个方法解决了我的问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值