gpt4 book ai didi

ios - 重新加载/刷新 subview - setNeedsDisplay 不起作用

转载 作者:可可西里 更新时间:2023-11-01 05:00:52 26 4
gpt4 key购买 nike

我有 setNeedsDisplay 方面的问题。我有一个带有很多子 UIView 的 UIView,它们是在 Inteface Builder 中创建的。我还有一个带 IBAction 的按钮。在此 IBAction 中,我想重绘/重新加载所有 UIView(或所有 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 和 subview ?

编辑 1:

我如何加载 View :

detailViewController = [[DetailViewController alloc]  
initWithNibName:@"DetailViewController_iPad" bundle:[NSBundle mainBundle]];

detailviewcontroller 没有 viewcontroller,只有 uiviews,这里是层次结构:

  • 界面 View
    -- UIViewContainer
    --- UIView0
    --- UIView1
    --- UIViewStapel

我希望做什么:

*我不想重置 UIView,我想更改背景和它们的内容。 *

我的详细 View 中有很多 subview (uiview),请参见上面的层次结构。我在 UIViews 中显示内容,内容来自 coreData。
view1 包含当前行的 coreData。
view0 包含前一行的 coreData。
viewStapel 包含下一行 coreData。

使用 IBAction,我想迭代 coreData 行,如果调用操作,则显示当前的下一行......等等......

在Log中,数据发生了变化,但没有显示在UIViews中。为此,我需要重新绘制或重新加载或类似的东西,以显示当前数据。

编辑 2:已解决
我将代码放在一个新方法中,调用这个方法解决了我的问题。

最佳答案

您是否正在尝试将您的 View 和 subview 重置为其在 nib 文件中的默认状态?

如果是这样,上述方法将不起作用。自动执行此操作的唯一方法是从 Nib 重新加载 View ,但在我提供帮助之前,您首先需要更清楚如何加载 View 。

如果您正在将它加载到 View Controller 中,那么刷新它的最简单方法是从屏幕上删除 View Controller 并重新创建它,但是您可以重新加载 View ,说这样的话(从 Controller ):

UIView *parent = self.view.superview;
[self.view removeFromSuperview];
self.view = nil; // unloads the view
[parent addSubview:self.view]; //reloads the view from the nib

如果您使用 [[NSBundle mainBundle] loadNibNamed...] 或等效方法直接从 nib 加载 View ,那么重新加载 View 的最佳方法就是将其丢弃并再次调用该方法。

关于ios - 重新加载/刷新 subview - setNeedsDisplay 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com