2013-03-10 2 views
0

Я новичок в разработке iPhone. Я пишу код для приложения Crystal Ball, в котором фоновое изображение выходит за рамки, когда я запускаю симулятор iPhone. Я стараюсь делать что-то прагматично. Ниже приводится кодиз связанного изображения в симуляторе iOS

импорт "ViewController.h"

@interface ViewController() 

@end 

@implementation ViewController 
@synthesize predictionLabel; 
@synthesize predictionArray; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIImage *image = [UIImage imageNamed: @"crystal_ball [email protected]"]; 
    UIImageView *imageView =[[UIImageView alloc] initWithImage:image]; 
    [self. view insertSubview:imageView atIndex:0]; 


    self.predictionArray = [[NSArray alloc] initWithObjects:@"It is decideley so", 
           @"good things coming", 
           @"Good time is here", 
           @"Great profit", 
           @"stay possitive",@"Stay Foccused",@"all is well",nil]; 

    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)viewDidUnload 
{ 
    [self setPredictionLabel:nil]; 
    [self setPredictionLabel:nil]; 
    [self setPredictionLabel:nil]; 
    [self setPredictionLabel:nil]; 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
} 

- (IBAction)buttonPressed:(UIButton *)sender { 

    NSUInteger index = arc4random_uniform(self.predictionArray. count); 

    self.predictionLabel.text = [self.predictionArray objectAtIndex: index]; 
} 
@end 
+0

В чем проблема? – CodaFi

+0

Возможно, вы используете изображение с высоким разрешением (для отображения сетчатки), но вы используете неправильный iphone sim? у вас также есть crystal_ball copy @ .png в папке с изображениями? – mat

+0

Нет, я не использовал crystal_ballcopy.png в папке с изображениями. И какой образ мне нужно использовать, чтобы исправить это. Другой момент, который я хотел бы сделать, заключается в том, что, хотя я использую Image View в раскадровке, одно и то же изображение прекрасно работает, но когда я пытаюсь сделать то же самое, что проблема возникает, – Maverick10

ответ

1

Вы должны создать изображение без "@ 2x". iOS обрабатывает его уже.

UIImage *image = [UIImage imageNamed: @"crystal_ball copy.png"]; 
+0

попробовал - не работает. Также, когда я использую одно и то же изображение через раскадровку. Изображение - все работает отлично, но если я пытаюсь сделать то же самое прогамматически - ошибка возникает. – Maverick10

+0

Это потому, что на раскадровке вы устанавливаете кадр UIImageView, а изображение изменяется в соответствии с рамкой. Программно, вы не устанавливаете кадр, поэтому его размер будет размером изображения. Проверьте, соответствуют ли размеры файла изображения тем, которые вы ожидаете. –

+0

уверен, что это получилось просто отлично – Maverick10

0

Будьте счастливы, что вы запустили его на тренажере не сетчатки. В противном случае вы, возможно, не заметили проблему.

Это вопрос:

UIImage *image = [UIImage imageNamed: @"crystal_ball [email protected]"]; 

Сетчатка-вещь немного трудно понять, когда вы не знаете свою историю:

Когда-то не было дисплей сетчатки. В эти темные дни ваше имя было всего "crystal_ball copy.png". Затем появилась сетчатка, и Apple попыталась сделать ее максимально прозрачной и легкой для разработчиков. Если вы ничего не изменили для своего кода, приложение все равно должно работать на сетчатом устройстве, но не будет использовать разрешение. Если вы предоставили файл с двойным разрешением и добавили "@2x" к имени файла, но все равно ничего не изменили для вашего кода, система автоматически получит изображение с высоким разрешением на устройствах сетчатки и стандартное изображение на устройствах, не содержащих сетчатки.

Итак, предоставьте оба разрешения, одно с "@2x" и одно без, и при обращении к имени файла опустите "@2x". Вот и все. Эта линия будет устранить проблему здесь:

UIImage *image = [UIImage imageNamed: @"crystal_ball copy.png"]; 

Если предположить, что этот графический файл существует и имеет не-сетчатку разрешения.

+0

Спасибо за информацию. Ваша помощь приветствуется. – Maverick10

Смежные вопросы