2013-09-15 3 views
2

Не уверен, что я делаю неправильно, но затем просматриваю изображение, которое я только что использовал, используя мое приложение, изображение увеличено до определенного места на исходном изображении, и я понятия не имею, почему.UIImageView показывает изображение, увеличенное в

Heres мой код для загрузки и отображения изображения.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:imageName]; 
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:path]]; 
imageView.contentMode = UIViewContentModeScaleAspectFill; 

ответ

1

Это потому, что вы назначаете init с изображением, а не с размером исправления. Ваше изображение больше, чем вы думаете, и оно выглядит как «увеличенное».

Делают это так:

UIImageView* yourImageView = [[UIImageView alloc]initWithFrame:CGRectMake(x, y, width, height)]; 
yourImageView.image = [UIImage imageWithContentsOfFile:path]; 
yourImageView.contentMode = UIViewContentModeScaleAspectFill; 
yourImageView.clipsToBounds = YES; 
+0

Спасибо, я настраивал его неправильно, как вы сказали. –

+0

Ваш прием! Я рад помочь вам! – incmiko

1

Ваше изображение масштабируется, потому что вы сказали мнение, чтобы сделать это:

imageView.contentMode = UIViewContentModeScaleAspectFill; 

На простом английском языке, это говорит вид изображения на «сделать изображение подходящим для просмотра, масштабируя его, не изменяя соотношение сторон».

Если вы не хотите увеличивать изображение, у вас есть несколько вариантов. Вы можете убедиться, что ваш UIImageView имеет такое же соотношение сторон, что и изображение, которое вы хотите отобразить в нем, или вы можете изменить режим содержимого на что-то другое (например, UIViewContentModeScaleToFill, что растянет ваше изображение до соответствия, или UIViewContentModeCenter, которое будет центрировать его).

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