将背景图像添加到View Controller中

Sai*_*son 12 cocoa-touch objective-c uiviewcontroller ios

我尝试在我的app委托下使用此代码,以便将PNG图像添加为视图控制器的背景:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [[self window] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但我没有运气...视图控制器仍然有白色背景.这段代码出了什么问题?

had*_*lah 35

接受的答案和迈克尔的答案将起作用,但是,正确的方法是使用UIImageView代替.它可以根据设备上不同的屏幕尺寸更好地控制调整大小,缩放等.这是一个例子;

首先创建一个UIImage.

UIImage *backgroundImage = [UIImage imageNamed:@"iphone_skyline3.jpg"];
Run Code Online (Sandbox Code Playgroud)

第二次创建一个UIImageView.将帧大小设置为父(自)帧大小.这很重要,因为帧大小会因不同设备而异.将根据图像大小进行拉伸.接下来将图像分配给视图.

UIImageView *backgroundImageView=[[UIImageView alloc]initWithFrame:self.view.frame];
backgroundImageView.image=backgroundImage;
Run Code Online (Sandbox Code Playgroud)

最后,要将图像保留在所有控件后面,请执行以下操作.如果您将图像设置为应用程序的背景,这一点很重要.

[self.view insertSubview:backgroundImageView atIndex:0];
Run Code Online (Sandbox Code Playgroud)


nul*_*ull 24

您需要为ViewController的视图设置背景

在您的ViewController initviewDidLoad:

[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
Run Code Online (Sandbox Code Playgroud)


Esq*_*uth 7

以下是swift中的内容:

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))
}
Run Code Online (Sandbox Code Playgroud)


小智 5

Swift 4版本的@hadaytullah回答了图像调整方面的一些改进:

override func viewDidLoad() {
    super.viewDidLoad()

    let backgroundImage = UIImage.init(named: "yourImageNameHere")
    let backgroundImageView = UIImageView.init(frame: self.view.frame)

    backgroundImageView.image = backgroundImage
    backgroundImageView.contentMode = .scaleAspectFill
    backgroundImageView.alpha = 0.1

    self.view.insertSubview(backgroundImageView, at: 0)
}
Run Code Online (Sandbox Code Playgroud)