私はSpriteKit
グラフを描くために使用しています(ズームインとパンが可能です)。
を使用しSKCropNode
てグラフのグリッドをトリミングすると、目的の領域がトリミングされません。長方形SKShapeNode
またはSKSpriteNode
(画像付き)をとして使用しても、トリミングは少なくなり.maskNode
ます。
これが私のコードです:
//GRID
let grid = SKCropNode()
graphViewModel.graphScene.addChild(grid)
let ratio:CGFloat = 1000 / 500
let width = (graphViewModel.sceneSize.width*0.95)
let newSize = CGSize(width: width, height: width/ratio)
let origin = CGPoint(x: -newSize.width/2.0, y: 0.0)
let rectangularMask = SKShapeNode(rect: CGRect(origin: origin, size: newSize))
rectangularMask.fillColor = UIColor.lightGray
rectangularMask.zPosition = -10.0 //So it appears behind the grid, doesn't affect the cropping
grid.maskNode = rectangularMask
graphViewModel.graphScene.addChild(rectangularMask)
私が言いたいことを説明するための2つのスクリーンショットを次に示します。
これは maskNode が設定されたグラフです。lightGray 領域は実際のものrectangularNode
であり、グリッドは必要以上にカットされていません。
シーンは拡大縮小されているため、ピクセル化せずにズームインできます。ズームを無効にすると (シーンのサイズをビューのサイズに設定)、バグは消えます。残念ながら、ピクセルアーティファクトなしでズームする必要があります。
誰かがこの問題を解決する方法を知っているかもしれません。SpriteKit のバグの可能性もあります。