0

Navigation Controller Load イベントに次のものがあります...

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 に答える