0

我的导航控制器加载事件中有以下内容...

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];
4

1 回答 1

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];
}
于 2013-02-04T09:16:00.933 回答