#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 отлично определяет размеры изображения. И спасибо за совет по поводу двух изображений 🙂