Как использовать setImage в плагинах Sketch
Сейчас я пишу Sketch Plugin.
Я надеваю что-то вроде этого:
fill.setFillType(4);
fill.setPatternImage( imageData );
fill.setPatternFillType(1);
Выходные данные консоли: setPatternImage: устарела. Используйте setImage: вместо этого с MSImageData "Scripting Legacy"
Как я могу решить это? Это вызывает сбой.
fill.setImage( imageData )
Заранее спасибо.
1 ответ
Вы смотрели на скетч-заголовки о новой версии? 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)