joh*_*doe 6 iphone objective-c uiimageview
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
CGRect viewRect = CGRectMake(250, 100, 30, 30);
as = [[UIImageView alloc] initWithFrame:viewRect];
as.backgroundColor=[UIColor clearColor];
UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"check" ofType:@"png"]];
[as setImage:img];
[self.view addSubview:as];
BOOL test= [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];
NSLog(@"%@", (test ? @"YES" : @"NO"));
if(test == YES)
{
as.hidden=NO;
}
else
{
as.hidden=YES;
}
}
Run Code Online (Sandbox Code Playgroud)
该test结果YES ,但imageView不听指挥.hidden或更新每一次当viewDidAppear.如果它不是,当我重新启动应用程序,它消失,我把它变成是我完美的展示之后,但比之后,我从来没有总是去那里,我不能让它隐藏起来.知道为什么没有反应吗?
小智 12
问题是UIImageView每次出现视图时都会创建新的.你必须创建UIImageView一次:
- (void)loadView {
[super loadView];
CGRect viewRect = CGRectMake(250, 100, 30, 30);
as = [[UIImageView alloc] initWithFrame:viewRect];
as.backgroundColor = [UIColor clearColor];
UIImage *img = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"check" ofType:@"png"]];
as.image = img;
[self.view addSubview:as];
[as release];
}
Run Code Online (Sandbox Code Playgroud)
然后在 - viewDidAppear方法中显示/隐藏它:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
BOOL test = [[NSUserDefaults standardUserDefaults] boolForKey:@"switch"];
NSLog(@"%@", (test ? @"YES" : @"NO"));
if(test == YES) {
as.hidden = NO;
}
else {
as.hidden = YES;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20877 次 |
| 最近记录: |