2013-03-20 2 views
0

В моем приложении, я хочу установить фоновое изображение на UIView. В симуляторе iOS этот код работает. И на iPhone черный фон. Вот код:UIView image background

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

UPDATE: Я решил мою проблему

+1

Убедитесь, что изображение '[UIImage imageNamed: @" appBG.png "]' равно нулю при работе на устройстве. –

+1

Рендеринг изображения с кварцем, который уже находится в комплекте без каких-либо динамических изменений, - действительно плохая идея. – Desdenova

ответ

0

Попробуйте этот код:

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 значения в соответствии начального кадра вашего требования.

+0

не работает – oxygen

+0

Я создал новый проект, и он работает, но почему в этом проекте не работает – oxygen

+0

Попытайтесь очистить свой проект всеми возможными способами: 1. Очистите сборку, затем 2. Закройте проект и удалите другое содержимое из содержимого xcodeproj file (otherthan pbxproj file) 3. удалите ссылку на проект из XCode Organizer> Projects 4. Затем снова откройте проект – Mrunal

2

его лучше u возьмет ImageView на UIView и установите для него изображение. Вместо того, чтобы устанавливать изображение в UIView.

+0

Почему это, не могли бы вы объяснить? Это будет более полезно для других, если вы сможете это квалифицировать. – JSA986

+0

Вы можете просто изменить или настроить ImageView в соответствии с разрешениями iPhone (iPhone5 и 4s). Кроме того, это дает вам больше гибкости и легкости, чтобы очень легко назначить изображение. – Rahul

0

Попробовать заменить следующие строки:

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

С следующей строкой:

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

Может быть проблемой кадра или границы.