作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
是否可以重绘整个 View 。
我需要它来完成我的语言设置。问题是语言只会在再次绘制 View 后发生变化。就像你走出设置再进去,然后语言就变了。但在您保存所有内容的那一刻,语言保持不变。
那么,在发现语言更改后,我应该如何重绘我的 View ,或者最好重绘整个应用程序?
最佳答案
在 ARC 中:
- (void)setLanguage:(LanguageType)languageType
{
_language = languageType;
//TODO:your settings
[_theWholeView setNeedsDisplay];
}
如果还是不行,有一个很麻烦的解决办法,就是重新加载整个view。
你可以这样编码:在 view.h 中,您需要创建一个委托(delegate)。@protocol WholeViewDelegate
- (void)reloadData;
@结束
在view.m中
- (void)setLanguage:(LanguageType)languageType
{
_language = languageType;
//TODO:your settings
[_delegate reloadData];
}
在 Controller 中你需要实现委托(delegate)在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
}
关于objective-c - 在 ios 中重绘 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135502/
我是一名优秀的程序员,十分优秀!