用这个替换现有代码
-(IBAction)displayinfo:(id)sender { if ( appear == NO) { sublayer = [CALayer layer]; appear = YES; sublayer.contents=(id)[UIImage imageNamed:@"infoPalette.png"].CGImage; sublayer.frame= CGRectMake(300,200,350,250); [self.view.layer addSublayer:sublayer]; } else { [sublayer removeFromSuperlayer]; } }
ZaEeM ZaFaR.. 6
在我的情况下,我在我的背景imageView中添加了多个子图层,我使用了所有这些子图层
for (int i = 0 ; i < [self.backgroundImageView.layer.sublayers count]; i++ ) { [[self.backgroundImageView.layer.sublayers objectAtIndex:i] removeFromSuperlayer]; }
注意:我也像这样迭代
for (CALayer *layer in self.backgroundImageView.layer.sublayers) { [layer removeFromSuperlayer]; }
但这会导致BadAccess,这可能就是我将一些CAGradientLayer添加到backgroundImageView.Layer的原因.(虽然没有多大意义).
用这个替换现有代码
-(IBAction)displayinfo:(id)sender { if ( appear == NO) { sublayer = [CALayer layer]; appear = YES; sublayer.contents=(id)[UIImage imageNamed:@"infoPalette.png"].CGImage; sublayer.frame= CGRectMake(300,200,350,250); [self.view.layer addSublayer:sublayer]; } else { [sublayer removeFromSuperlayer]; } }
在我的情况下,我在我的背景imageView中添加了多个子图层,我使用了所有这些子图层
for (int i = 0 ; i < [self.backgroundImageView.layer.sublayers count]; i++ ) { [[self.backgroundImageView.layer.sublayers objectAtIndex:i] removeFromSuperlayer]; }
注意:我也像这样迭代
for (CALayer *layer in self.backgroundImageView.layer.sublayers) { [layer removeFromSuperlayer]; }
但这会导致BadAccess,这可能就是我将一些CAGradientLayer添加到backgroundImageView.Layer的原因.(虽然没有多大意义).