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.