我的应用允许用户通过应用内购买解锁一堆关卡。为了表明某个级别被锁定,我将图标alpha更改为0.7,只是为了区别于他们拥有/可以访问的级别。
我的代码通过在viewDidLoad上检查NSUserDefaults的BOOL键来工作:
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"com.productbundle.unlock"]){
//set these levels to alpha = 0.7
}
因此,在他们成功购买之后,如果我可以刷新/重新加载UIView,那将非常容易。有没有办法做到这一点?或者我可以通过其他方式实现这种影响吗?感谢
答案 0 :(得分:1)
我认为你不应该调用[self viewDidLoad]。据我了解,这些是你在子类中实现的更多方法来响应各种事件,一般情况下你不应该自己调用它们。查看视图的文档,如果要在视图再次可见时刷新内容,请查看实现
-(void)viewDidAppear:(BOOL)animated
答案 1 :(得分:0)
我会把它放在-(void)viewWillAppear:(BOOL)animated
viewWillAppear =“通知视图控制器其视图即将变为可见。”
我会检查你的用户默认值,并在那里粘贴if语句:
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults boolForKey:@"com.productbundle.unlock"] == YES) {
//set alpha to 1
};
[super viewWillAppear:animated];
}
答案 2 :(得分:0)
使用setNeedsDisplay刷新UIView。
[yourUIView setNeedsDisplay];