backgroundColor colorWithPatternImage заканчивается растянутым, если размер представления изменяется, а не повторяется? - PullRequest
4 голосов
/ 14 сентября 2009

Я устанавливаю фон просмотра для повторяющегося изображения, используя colorWithPatternImage. Если размер представления изменяется после того, как я установил фон в первый раз, изображение растягивается, а не повторяется для нового размера - есть идеи, как я могу это исправить?

Вот что я делаю:

  • установить фон представления в viewDidLoad:

    frameView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "frame-repeat.png"]];

  • получить некоторую информацию с сервера, обновить представление, изменить размер кадра представления, чтобы соответствовать новому содержимому (обычно это означает увеличение представления)

  • фоновое изображение теперь растянуто, даже если я снова установил backgroundColor, используя точно такой же код.

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

Кто-нибудь еще сталкивался с этим?

Спасибо за любую помощь!

1 Ответ

5 голосов
/ 18 июня 2010

Ответ довольно прост, просто позвоните

[[self view] setNeedsDisplay];

в контроллере, когда вы меняете размер кадра (или там, где вы это делаете, нижняя строка - отправка сообщения setNeedsDisplay в представление после смены кадра) Если это не работает - попробуйте установить цвет фона.

И если это не сработает, реализуйте свой собственный пользовательский вид и переопределите в нем метод

- (void) drawRect:(CGRect) rect {
   CGRect myBounds = self.bounds;
   CGContextRef context = UIGraphicsGetCurrentContext();
   [[UIColor colorWithPatternImage:[UIImage imageNamed:@"frame-repeat.png.png"]]set];
   CGContextFillRect(context, myBounds);
}

А затем, после изменения размера, отправьте setNeedsDisplay на ваше представление. Это будет работать на 100%.

Надеюсь, это было полезно, Павел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...