Sketch插件:如何以编程方式使图层可导出?

时间:2015-12-08 18:19:49

标签: javascript plugins sketch-3 cocoascript

因此,在Sketch中,您可以将图层/组标记为可导出。

enter image description here

然后图层/组可以导出为.png / .svg / .pdf等。我最近尝试制作一个Sketch插件,我需要将图层/组标记为可从代码导出。代码中的图层使用MSLayer表示,组为MSLayerGroup。草图文档还不够成熟,所以我使用ClassDump来提取应用程序中使用的所有标题。我一直在寻找一种似乎可以完成我的工作的方法,但它已经好几天了,但仍然没有运气。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分: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 plugin参考。