是否可以重绘整个视图.
我需要它来完成我的语言设置.问题是语言只会在再次绘制的视图后发生变化.就像你没有设置然后再次进入,然后语言改变了.但是当你保存一切时,语言保持不变.
所以,我应该如何重绘我的看法,或者最好整个应用程序,语言的变化后发现?
clo*_*sen 11
在ARC中:
- (void)setLanguage:(LanguageType)languageType
{
_language = languageType;
//TODO:your settings
[_theWholeView setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,有一个非常麻烦的解决方案,它可以重新加载整个视图.
你可以像这样编码:在view.h中,你需要创建一个委托.@protocol WholeViewDelegate
- (void)reloadData;
Run Code Online (Sandbox Code Playgroud)
@结束
在view.m中
- (void)setLanguage:(LanguageType)languageType
{
_language = languageType;
//TODO:your settings
[_delegate reloadData];
}
Run Code Online (Sandbox Code Playgroud)
在控制器中,您需要在controller.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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19081 次 |
| 最近记录: |