我的导航控制器加载事件中有以下内容......
UIImage *image = [UIImage imageNamed:@"Background.jpg"];
CGImageRef cgImg = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, 0, 500, 620));
UIImage* part = [UIImage imageWithCGImage:cgImg];
UIImageView* imageView = [[UIImageView alloc] initWithImage:part];
[self.view insertSubview:imageView atIndex:0];
一旦我将嵌入视图设置为具有清晰背景,这将设置背景图像并正常工作。我的问题是如何在加载后更改此图像?
我正在寻找的效果是当我将不同的视图压入堆栈时,我想裁剪图像的新部分。
我知道我可以为每个表加载一个新图像,但我想要的效果是当你按下到下一个视图时,表格从右向左移动显示新表格,但背景从右向左移动只是一点点。
结束使用NSTimer和这个组合
[[self.navigationController.view.subviews objectAtIndex:0] removeFromSuperview];
[self.navigationController.view insertSubview:imageView atIndex:0];
答案 0 :(得分:0)
将标签用于不同的backgroundView和其他视图
#deifne BACKGROUNDVIEWTAG 999
if(![self.view subviews] || ((UIView *)[[self.view subviews] objectAtIndex:0]).tag != BACKGROUNDVIEWTAG)
{
UIImage *image = [UIImage imageNamed:@"Background.jpg"];
CGImageRef cgImg = CGImageCreateWithImageInRect(image.CGImage, CGRectMake(0, 0, 500, 620));
UIImage* part = [UIImage imageWithCGImage:cgImg];
UIImageView* imageView = [[UIImageView alloc] initWithImage:part];
imageView.tag = BACKGROUNDVIEWTAG;
[self.view insertSubview:imageView atIndex:0];
}