Из быстрого чтения вашего кода, вот мое предположение о том, что не так.
Ваш основной вид реагирует на изменение ориентации, поэтому он перерисовывается при повороте устройства.Вы нарисовали шаблон, и шаблоны повторяются.Если вы хотите, чтобы фон не повторялся, вам нужно создать UIImageView и установить для его изображения значение «mickey.png»
Созданному представлению (touchDraw) дается рамка, когдаон создается, и он не обновляется динамически при повороте iPad.
Я думаю, все, что вам нужно сделать, это:
touchDraw.autoresizingMask = UIViewAutoresizingFlexibleHeight
| UIViewAutoresizingFlexibleWidth;
Это говорит о том, что он должен автоматически-приспосабливаться при изменении ориентации.
Возможно, вам также понадобится добавить этот метод в контроллер представления (я забыл, что для этого используется по умолчанию):
- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
Вы можете иметь более точныйДетальный контроль над изменениями ориентации путем добавления этих двух методов в ваш контроллер представления:
- (void)willRotateToInterfaceOrientation: (UIInterfaceOrientation) orient
duration: (NSTimeInterval) duration
и
- (void) didRotateFromInterfaceOrientation:
(UIInterfaceOrientation) orientation {
Обратите внимание, что трудно увидеть, где находятся ваши виды без рамки.Для отладки вы можете установить границу, используя:
touchDraw.layer.borderWidth = 1;
touchDraw.layer.borderColor = [[UIColor blackColor] CGColor];
Я думаю, чтобы получить доступ к свойству слоя выше, вам также нужно будет включить этот #import:
#import <QuartzCore/QuartzCore.h>
Когда я 'Играя с местами для моих видов, я часто добавляю границы, чтобы четко видеть, где находятся мои виды.
Обратите внимание, что, вероятно, в "Интерфейсном конструкторе" есть настройка для автоматического поворота,но вы создаете свое представление в C-коде, поэтому оно не устанавливается.