重新加载或刷新UIView?

时间:2012-02-16 05:25:37

标签: iphone ios xcode ipad

我的应用允许用户通过应用内购买解锁一堆关卡。为了表明某个级别被锁定,我将图标alpha更改为0.7,只是为了区别于他们拥有/可以访问的级别。

我的代码通过在viewDidLoad上检查NSUserDefaults的BOOL键来工作:

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"com.productbundle.unlock"]){
    //set these levels to alpha = 0.7
}

因此,在他们成功购买之后,如果我可以刷新/重新加载UIView,那将非常容易。有没有办法做到这一点?或者我可以通过其他方式实现这种影响吗?感谢

3 个答案:

答案 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];