Попытка сделать твик для iOS, который делает скриншот при встряхивании устройства - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь создать простой трюк в объективе - c, который будет делать снимок экрана при встряхивании устройства. Я получил половину работоспособности с тех пор, как я протестировал твик для отправки оповещения при встряхивании устройства, но мне бы хотелось, чтобы вместо этого был сделан скриншот, но я не могу найти правильный код.

Вот код, который я сейчас имею:

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if(event.subtype == UIEventSubtypeMotionShake && self == [[UIApplication sharedApplication] keyWindow]) {
     /// Screenshot action should go here. I’ve tried multiple methods but none works.
  }
}

Я перепробовал много методов и хуков, но на скриншоте ничего не получалось. Буду очень признателен за помощь!

1 Ответ

0 голосов
/ 02 апреля 2020

В идеале вы хотели бы иметь что-то вроде этого:

/// Grab current window
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [keyWindow bounds];

/// Create new image context with the size of your screen
UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];   

/// Grab image from current context
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...