iPhone: Показать изображение в оригинальном размере - PullRequest
6 голосов
/ 28 июля 2011

Я пытаюсь установить рамку для просмотра изображения на оригинальный размер изображения и отобразить его в центре обзора. Я написал следующий код для этого, но изображение все еще появляется на весь экран! Предположим, что размер изображения составляет 320x88, размер и размер изображения можно увеличить до 320x460! Я хочу, чтобы он отображался в центре экрана, поэтому я установил координату Y на (460-88) / 2, но это не работает. Может ли кто-нибудь, пожалуйста, помогите мне решить эту проблему. Спасибо.

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:filePath]];

if(imageView.image.size.width == IPHONE4_RES_WIDTH)
    [imageView setFrame: CGRectMake(0, 0, imageView.image.size.width/2, imageView.image.size.height/2)];

UIViewController *viewController = [[[UIViewController alloc] init] autorelease];
viewController.view.backgroundColor = [UIColor blackColor];

NSLog(@"%f : %f",viewController.view.bounds.size.height, imageView.bounds.size.height);

viewController.view = imageView;
viewController.view.contentMode = UIViewContentModeCenter;

[self.navigationController pushViewController:viewController animated:YES];

Ответы [ 4 ]

15 голосов
/ 28 июля 2011

попробуйте

    viewController.view.contentMode=UIViewContentModeCenter;
2 голосов
/ 01 июля 2016

Пробежался по этому вопросу, пытаясь добиться того же в файле storyboard. Просто как дополнение: в раскадровке вы можете выбрать Mode = Center из UIImageView

enter image description here

2 голосов
/ 28 июля 2011

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

imageView.contentMode = UIViewContentModeCenter
0 голосов
/ 29 июля 2011

Идеально подходит для моих требований!

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:filePath]];

// Reduce the width and height for iPhone 4 res
if(imageView.image.size.width == IPHONE4_RES_WIDTH)
    [imageView setFrame: CGRectMake(0, 0, imageView.image.size.width/2, imageView.image.size.height/2)];


UIViewController *viewController = [[[UIViewController alloc] init] autorelease];
viewController.view.backgroundColor = [UIColor blackColor];

float X = (viewController.view.bounds.size.width - imageView.bounds.size.width)/2;
float Y = (viewController.view.bounds.size.height - imageView.bounds.size.height)/2 - 50; // Size of tabbar and navigation bar deducted

NSLog(@"(%f, %f) : (%f,%f)",X,Y,imageView.bounds.size.width,imageView.bounds.size.height);

[viewController.view addSubview:imageView];

//viewController.view = imageView;
//viewController.view.contentMode = UIViewContentModeCenter;

// Set in the center of the screen
if(imageView.image.size.width == IPHONE4_RES_WIDTH)
    [imageView  setFrame: CGRectMake(X, Y, imageView.image.size.width/2, imageView.image.size.height/2)];
else
    [imageView  setFrame: CGRectMake(X, Y, imageView.image.size.width, imageView.image.size.height)];

[self.navigationController pushViewController:viewController animated:YES];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...