Растянутое фоновое изображение UITableViewController

#iphone #ios #uitableview

#iPhone #iOS #uitableview

Вопрос:

Я пытаюсь установить фоновое изображение для UITableViewController. У меня есть следующий код, который отлично настраивает фон, но само изображение растягивается примерно в два раза больше обычного размера.

 [[self view] setAutoresizesSubviews:NO];

UIView *backgroundView = [[UIView alloc] initWithFrame:self.view.frame];
backgroundView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Default.png"]];

self.tableView.backgroundView = backgroundView;
self.tableView.backgroundColor = [UIColor clearColor];

[backgroundView release];
  

Размер изображения составляет всего 640×960 пикселей.

Я пытался вручную установить рамку backgroundView , но это не меняет размер фонового изображения.

Кто-нибудь может объяснить, где я ошибаюсь?

Большое спасибо.

Ответ №1:

По моему опыту, вам следует избегать использования

[UIColor colorWithPatternImage: ... ];

поскольку это приводит к некоторым проблемам с выбором правильного изображения для устройств Retina / с низким разрешением.

Попробуйте что-то более похожее на это:

 UIImageView* bgView = [[[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"Default.png"]] autorelease];

[tableView.backgroundView addSubview:bgView];
  

Также убедитесь, что у вас есть два PNG:

  • По умолчанию.png — 320 x 480
  • Default@2x.png = 640 x 960

Комментарии:

1. Это здорово сработало! UIImageView отлично определяет размеры изображения. И спасибо за совет по поводу двух изображений 🙂