ビューに枠付きのボックスを描画するためにCAShapeLayer
aを使用しています。UIBezierPath
これは正常に動作していますが、最初のピクセル (上、左) が描画されていません。
これは私のコードです:
let focusSize = CGRect(x: focusX, y: focusY, width: focusWidth, height: focusHeight)
let focusPath = UIBezierPath(roundedRect: focusSize, cornerRadius: 0)
let borderLayer = CAShapeLayer()
borderLayer.path = focusPath.cgPath
borderLayer.fillColor = UIColor.clear.cgColor
borderLayer.strokeColor = UIColor.white.cgColor
borderLayer.lineWidth = 2
borderLayer.frame = self.someView.bounds
self.someView.layer.addSublayer(borderLayer)
結果 (左上隅のピクセルに注意してください):
これはアンチエイリアシングに関連している可能性があると思いましたが、x、y、borderWidth をいじっても問題は解決しないようです。誰がこれを引き起こしているのか知っていますか?