2010-08-13 4 views
13

Как установить фоновое изображение моего UIViewController? Каков код для этого? Прямо сейчас у меня естьUIViewController background Изображение

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.jpg"]]; 

, но я не хочу шаблон. Я хочу, чтобы он правильно заполнил экран.

ответ

34

вы можете использовать:

UIImageView *backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Blah.png"]]; 

[self.view addSubview:backgroundImage]; 
[self.view sendSubviewToBack:backgroundImage]; 
[backgroundImage release]; 

Apple HD image Guide

+1

The iPhone 4 является 960-на-640-пикселей разрешение на 326 пикселей на дюйм в соответствии с веб-сайта компании Apple. Когда я делаю изображение таким большим, оно слишком велико для фона, когда я пытаюсь поместить его на свой телефон с помощью этого кода. Как это сделать? Я пытаюсь создать фон с высоким разрешением для одного из моих приложений. – CodeGuy

+0

ах. Я бы попробовал прочитать информацию о преобразовании пикселей (есть ориентир для этого где-то). Я лично не совсем уверен, как это работает, но вам просто нужно скорректировать рамку UIImageViews? Я лично никогда не использовал HD-разрешение для iPhone4. –

+0

Что вы имеете в виду преобразование «точек в пиксель»? Не могли бы вы помочь мне найти руководство? – CodeGuy

1

Для расширения кода Джесси Naugher в: UIView (или UIViewController, в этом отношении), не держит встроенный способ использования изображения для фона. Что вам нужно сделать, так это использовать UIImageView, который является подклассом UIView специально для отображения изображений, и добавить его в обратную сторону иерархии представлений.

+0

Спасибо. Я понимаю. У вас есть какая-то мудрость по этому вопросу, которую я опубликовал в качестве комментария к коду Джесси Наугера? – CodeGuy

5

self.view.layer.contents = (id) [UIImage imageNamed: @ "background.png"]. CGImage;

Причина: каждый вид поддерживается классом CALayer. Согласно документации на CALayer:

 
contents 
An object that provides the contents of the layer. Animatable. 


@property(retain) id contents 
 
Discussion 
A layer can set this property to a CGImageRef to display the image as its contents. The default value is nil. 

И да, это свойство анимируется. Это означает, что на этом уровне можно сделать приятные переходы на основе CoreAnimation. Примечание: будьте осторожны, если вы поддерживаете несколько ориентаций.

+1

Спасибо, что опубликовали это, именно то, что я искал. – Bradford2000

2

Быстрое решение для этого ...

let backgroundImageView = UIImageView(image: UIImage(named: "backgroundImage")) 
backgroundImageView.frame = view.frame 
backgroundImageView.contentMode = .ScaleAspectFill 
view.addSubview(backgroundImageView) 
view.sendSubviewToBack(backgroundImageView) 
1

решение для Swift 3.0

self.view.backgroundColor = UIColor(patternImage: UIImage(named: "home02.png")!) 
Смежные вопросы