Как показать, находится ли изображение на картоне в iOS

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

Как мне это сделать? Я пробовал с UIPasteboard, но как проверить, какой тип изображения он содержит?


person János    schedule 29.06.2015    source источник


Ответы (1)


Вам не нужен тип данных для отображения изображения, просто выполните:

UIPasteboard *appPasteBoard = [UIPasteboard pasteboardWithName:@"CopyPaste" create:YES];
NSData *data = [appPasteBoard dataForPasteboardType:@"com.yourCompany.yourApp.yourType"];
imageView.image = [UIImage imageWithData:data];

Однако вы можете угадать тип, посмотрев на первый байт (источник):

+ (NSString *)contentTypeForImageData:(NSData *)data {
    uint8_t c;
    [data getBytes:&c length:1];

    switch (c) {
    case 0xFF:
        return @"image/jpeg";
    case 0x89:
        return @"image/png";
    case 0x47:
        return @"image/gif";
    case 0x49:
    case 0x4D:
        return @"image/tiff";
    }
    return nil;
}
person Daniel    schedule 29.06.2015
comment
почему бы вам не использовать только так? let image = UIPasteboard.generalPasteboard().image! let data = UIImagePNGRepresentation(image) - person János; 29.06.2015
comment
UIPasteboard.generalPasteboard().items это то, что вы должны искать. Он содержит информацию об изображении и самом изображении. developer.apple.com/documentation/uikit/uipasteboard/ - person iCoder; 21.01.2020