Зеркальное отображение UIView - программирование

Зеркальное отображение UIView

У меня есть UIView с прозрачным фоном и несколькими кнопками. Я хотел бы захватить рисунок вида, сжать его и перерисовать (зеркально) его в другом месте на экране. (В дополнение к другому виду.) Кнопки могут меняться, поэтому они не являются статическими.

Какой был бы лучший способ сделать это?

4b9b3361

Ответ 2

Общая идея состоит в том, чтобы получить UIView layer, чтобы привлечь себя в контекст, а затем извлечь из него UIImage.

UIGraphicsBeginImageContext(view.frame.size);

[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

Вам также понадобится #import <QuartzCore/QuartzCore.h>

Ответ 3

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

UIView* original [UIView alloc] initWithFrame:originalFrame];
UIView* copy = [[UIView alloc] initWithFrame:copyFrame];

// Scale down 50% and rotate 45 degrees
//
CGAffineTransform t = CGAffineTransformMakeScale(0.5, 0.5);
copy.transform = CGAffineTransformRotate(t, M_PI_4);

[someSuperView addSubview:original];
[someSuperView addSubview:copy];

// release, etc.

Я добавил поворот, чтобы показать, что вы можете делать различные вещи с помощью преобразований.