Ios UIView图像背景

Ios UIView图像背景,ios,uiview,background-image,Ios,Uiview,Background Image,在我的应用程序中,我想在UIView上设置背景图像。在模拟器iOS中,此代码有效。在iPhone的黑色背景上。代码如下: - (void)viewDidLoad { [super viewDidLoad]; UIGraphicsBeginImageContext(self.view.frame.size); [[UIImage imageNamed:@"appBG.png"] drawInRect:self.view.bounds]; UIImage *a

在我的应用程序中,我想在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];
}
更新:我决定解决我的问题

请尝试以下代码:

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

根据您的要求调整startFrame值。

更好的是,u将在UIView上拍摄ImageView并将图像设置为它。不要将图像设置为UIView。

尝试替换以下行:

[[UIImage imageNamed:@"appBG.png"] drawInRect:self.view.bounds];
[[UIImage imageNamed:@"appBG.png"] drawInRect:self.view.frame];
以下是一行:

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

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

检查图像
[UIImage imageNamed:@“appBG.png”]
在设备上运行时是否为零。使用quartz渲染图像(该图像已在捆绑包中)而不进行任何动态修改确实是个坏主意。我创建了一个新项目,它可以工作,但是为什么在这个项目中不起作用呢?试着用所有可能的方法清理你的项目,1。清洁构建2。关闭项目并从xcodeproj文件(pbxproj文件除外)3的内容中删除其他内容。从XCode Organizer>Projects 4中删除项目引用。然后重新打开项目,如果这个答案对你有帮助,那么你可以投票并接受同样的答案。为什么,你能解释一下吗?如果你能证明这一点,对其他人会更有帮助。你可以根据iPhone的分辨率(iPhone5和4s)修改或调整ImageView。此外,它还为您提供了更大的灵活性和方便性,可以非常轻松地指定图像。