0

在我的应用程序中,我想在 UIView 上设置背景图像。在模拟器 iOS 中,此代码有效。并在 iPhone 黑色背景上。这是代码:

    - (void)viewDidLoad
{
    [super viewDidLoad];
    UIGraphicsBeginImageContext(self.view.frame.size);
    [[UIImage imageNamed:@"appBG.png"] drawInRect:self.view.bounds];
    UIImage *appbg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    self.view.backgroundColor = [UIColor colorWithPatternImage:appbg];
}

更新:我决定了我的问题

4

3 回答 3

2

更好的是,您将在 UIView 上使用 ImageView 并将图像设置为它。而不是将图像设置为 UIView。

于 2013-03-20T10:36:36.720 回答
0

Try this code:

UIImage*    backgroundImage = [UIImage imageNamed:@"appBG.png"];
CALayer*    aLayer = [CALayer layer];
CGFloat nativeWidth = CGImageGetWidth(backgroundImage.CGImage);
CGFloat nativeHeight = CGImageGetHeight(backgroundImage.CGImage);
CGRect      startFrame = CGRectMake(0.0, 0.0, nativeWidth, nativeHeight);
aLayer.contents = (id)backgroundImage.CGImage;
aLayer.frame = startFrame;
[self.view.layer addSublayer:aLayer];
[aLayer setNeedsDisplay];

Adjust startFrame value according to your requirement.

于 2013-03-20T10:32:22.053 回答
0

尝试替换以下行:

[[UIImage imageNamed:@"appBG.png"] drawInRect:self.view.bounds];

使用以下行:

[[UIImage imageNamed:@"appBG.png"] drawInRect:self.view.frame];

可能是框架或绑定的问题。

于 2013-06-06T10:59:29.627 回答