에 UIBezierPath
을 사용하여 뷰에 경계 상자를 그립니다.CAShapeLayer 왼쪽 위 모서리에 픽셀이 누락되었습니다.
이것은 정상적으로 작동하지만 첫 번째 픽셀 (위쪽, 왼쪽)은 그려지지 않습니다.
이
내 코드입니다 :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 문제가 해결되지 않는 것 같습니다. 누가이 문제의 원인인지 알고 있습니까?
당신이 전면에 레이어를 살리려고 노력 했는가를 확인? 'someView'의 모든 하위 레이어를 출력하려고 했습니까? –