重新刷新iOS的视图



是否可以重新绘制整个视图。

我需要它来完成我的语言设置。问题在于,语言仅在绘制那里的观点后才发生变化。就像您走出设置然后再次进入一样,语言被更改。但是,当您保存一切时,语言保持不变。

找到语言更改之后,我应该如何重新绘制我的观点或最好的整个应用程序?

arc:

- (void)setLanguage:(LanguageType)languageType
{
    _language = languageType;
    //TODO:your settings
    [_theWholeView setNeedsDisplay];
}

如果无法正常工作,则有一个非常麻烦的解决方案,它可以重新加载整个视图。

您可以这样代码:在视图中,您需要创建一个代表。@protocol thotleviewDelegate

- (void)reloadData;

@end

在View.m

- (void)setLanguage:(LanguageType)languageType
{
    _language = languageType;
    //TODO:your settings
    [_delegate reloadData];
}

在控制器中您需要实施委托在控制器中。m

- (void)reloadData
{
    if(_wholeView)
    {
        [_wholeView removeFromSuperview];
    }
    // in the wholeView init method you should refresh your data
    _wholeView = [[WholeView alloc] init];
    self.view addSubview:_wholeView
}

是。致电[UIView setNeedsDisplay](参考)。

只需调用setneedsdisplay ..它将解决问题。setneedsdisplay实际上通过将视图框架作为矩形参数传递给Uiview类中的DrawRect函数。希望会有所帮助....

最新更新