如何在草图插件中使用setImage

How to use setImage in Sketch Plugins

本文关键字:setImage 插件      更新时间:2023-09-26

我目前正在编写一个草图插件。

我穿这样的东西:

fill.setFillType(4);
fill.setPatternImage( imageData );
fill.setPatternFillType(1);

控制台输出:setPatternImage:已弃用。使用 setImage: 代替 MSImageData «脚本遗产»

我该如何解决这个问题?这会导致崩溃。

fill.setImage( imageData )

提前谢谢。

你看过关于新版本的草图标题吗?https://github.com/abynim/Sketch-Headers

您可以更改代码,例如,如果您想构建一个支持所有版本的插件:

首先,您需要将草图版本捕获为变量。

function getSketchVersionNumber() {
    const version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]
    var versionNumber = version.stringByReplacingOccurrencesOfString_withString(".", "") + ""
    while(versionNumber.length != 3) {
        versionNumber += "0"
    }
    return parseInt(versionNumber)
}
var sketchVersion = getSketchVersionNumber()
fill.setFillType(4)
if (sketchVersion > 370) {
  // you need to grab the image with MSImageData like this one
  var image = [[MSImageData alloc] initWithImage: imageData convertColorSpace: false]]
  fill.setImage(image)
} else if(sketchVersion < 350) {
 [fill setPatternImage:imageData collection:[[fill documentData] images]]
} else {
 fill.setPatternImage(imageData)
}
fill.setPatternFillType(1)