【问题标题】:Sketch Plugin: How to programmatically make a layer exportable?Sketch Plugin:如何以编程方式使图层可导出?
【发布时间】:2015-12-08 18:19:48
【问题描述】:

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

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

【问题讨论】:

    标签: javascript plugins sketch-3 cocoascript


    【解决方案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 的引用。

    【讨论】:

    • 谢谢,我会尽快检查并回复您。
    猜你喜欢
    • 1970-01-01
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多