Sketch Plugin: Как программно сделать слой экспортируемым?

Таким образом, в Sketch вы можете пометить слой / группу как экспортируемые.

введите описание изображения здесь

И затем слой / группу можно экспортировать как.png/.svg/.pdf и т. Д. Я недавно пытался создать плагин Sketch, где мне нужно пометить слой / группу как экспортируемые из кода. Слой в коде представлен с использованием MSLayer и группа MSLayerGroup, Документация эскиза еще не достаточно развита, поэтому я использовал ClassDump для извлечения всех заголовков, которые использовались в приложении. Я искал метод, который, казалось бы, мог бы выполнять мою работу, но это были дни, и мне все еще не повезло. Кто-нибудь может помочь мне в этом отношении?

1 ответ

Sketch поддерживает срез и экспорт в изображение. Ты можешь использовать - (void)saveArtboardOrSlice:(id)arg1 toFile:(id)arg2; метод MSDocument,

Это почти как это сделать.

var loopLayerChildren = [[layerToExport children] objectEnumerator],
    rect = [MSSliceTrimming trimmedRectForSlice:layer],
    useSliceLayer = false,
    exportFilePath,
    slice;

// Check for MSSliceLayer and overwrite the rect if present
while (layerChild = [loopLayerChildren nextObject]) {
    if ([layerChild class] == 'MSSliceLayer') {
        rect  = [MSSliceTrimming trimmedRectForSlice:layerChild];
        useSliceLayer = true;
    }
}

slice = [MSExportRequest requestWithRect:rect scale:1];

if (!useSliceLayer) {
    slice.shouldTrim = true;
}

// export to image file
[(this.document) saveArtboardOrSlice: slice toFile:exportFilePath];

Ссылка из плагина @GeertWill sketch-to-xcode-assets-catalog.

Другие вопросы по тегам