Копировать частичный снимок экрана в картон

Итак, код для копирования части моего экрана на монтажный стол работает, потому что он успешно копировал его в мой фотоальбом. Но я хочу иметь возможность вставить частичный снимок экрана в новое SMS-сообщение. Я знаю, что это нужно будет сделать вручную (долго удерживать сообщение и вставить), но он либо ничего не вставил, либо не имеет опции «Вставить» (поскольку он сохраняет его как строку). Средняя часть кода - это часть, с которой я борюсь. Любая помощь будет здорово. Я изменил forPasteboardType на «изображение», но это тоже не работает.

    //Capture part of Screen Shot
        UIGraphicsBeginImageContext(self.view.bounds.size);
        CGContextRef c = UIGraphicsGetCurrentContext();
        CGContextTranslateCTM(c, 0, 98);    //
        [self.view.layer renderInContext:c];
        UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

    //Send Screenshot to Pasteboard    
    UIPasteboard *pasteBoard = [UIPasteboard pasteboardWithName:UIPasteboardNameGeneral create:YES];
    pasteBoard.persistent = YES;
    NSData *data = UIImagePNGRepresentation(viewImage);
    [pasteBoard setData:data forPasteboardType:(NSString *)kUTTypePNG];     

    /////// Open SMS
    MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
    if([MFMessageComposeViewController canSendText])
    {
        controller.body = @"Hello from me, paste image here -->";
        controller.recipients = [NSArray arrayWithObjects:@"123456789", nil];
        controller.messageComposeDelegate = self;
        [self presentModalViewController:controller animated:YES];
    }
    ////// End SMS
}

person user1467534    schedule 20.09.2012    source источник
comment
Итак, я удалил среднюю часть, объявил UIPasteboard *pasteBoard; в моем файле .h добавлен pasteBoard = [UIPasteboard generalPasteboard]; в моем ViewDidLoad и, наконец, поместите pasteBoard.image = viewImage; чтобы отправить изображение на монтажный стол. Если я открою новое SMS вручную, я могу вставить изображение. Я также работаю в новой электронной почте. НО, когда я пытаюсь вставить его во вновь созданное SMS в моем приложении, это не сработает? Я подумал, может быть, потому что у меня был текст в теле, поэтому я удалил строку controller.body и все еще не могу. Я чувствую, что я близко, хотя!   -  person user1467534    schedule 20.09.2012
comment
Хорошо, я заставил его работать, используя этот код, чтобы просто открыть собственное приложение SMS, NSString *stringURL = @sms:; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url];   -  person user1467534    schedule 20.09.2012
comment
Теперь я могу вставить изображение в собственное приложение SMS. Он по-прежнему показывает белую рамку сверху, где я обрезал его. Любые идеи по этому поводу?   -  person user1467534    schedule 20.09.2012


Ответы (1)


person    schedule
comment
Когда я открыл текстовое сообщение и обнаружил, что изображения внутри него нет. Я уверен, что изображение не ноль. - person RainCast; 15.09.2016