Зеркальное отображение UIView - PullRequest
1 голос
/ 30 декабря 2011

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

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

Ответы [ 3 ]

4 голосов
/ 16 января 2012

Проверьте хороший пример кода http://saveme -dot-txt.blogspot.com / 2011/06 / dynamic-view-mirror-using.html после сеансов WWDC. Использует

CAReplicatorLayer

для размышления, довольно прост в реализации и выглядит действительно гладко и впечатляюще.

2 голосов
/ 30 декабря 2011

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

UIGraphicsBeginImageContext(view.frame.size);

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

UIGraphicsEndImageContext();

Вам также нужно будет #import <QuartzCore/QuartzCore.h>

0 голосов
/ 30 декабря 2011

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

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.

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

...