0

現在、Sketch プラグインを作成しています。

私はこのようなことをしています:

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

コンソール出力: setPatternImage: は非推奨です。MSImageData «Scripting Legacy» の代わりにsetImageを使用します。

どうすればこれを解決できますか? これにより、クラッシュが発生します。

fill.setImage( imageData )

前もって感謝します。

4

1 に答える 1

0

新しいバージョンについてのスケッチヘッダーを見ましたか? 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)
于 2016-05-09T16:24:48.480 に答える