0
일부 시각 버그는 레이아웃 :나는 다음과 같은 세포와 jQuery과가있는 CALayer
• UIView의
••있는 UIImageView
••• 반투명 오버레이의 UIView있는 UIImageView의 서브 뷰로
"재생"버튼과 UILabel을 모방 한 아이콘보기가 있지만이 버그와 관련이없는 것 같습니다.
그리고 나는 다음과 같은 코드가 있습니다
override func layoutSubviews() {
super.layoutSubviews()
createPath()
}
private func createPath() {
let padding = CGFloat(16)
let bottomLineLength = CGFloat(64)
let arcPadding = CGFloat(8)
let width = self.contentView.frame.width
let height = self.contentView.frame.height
if pathLayer != nil {
pathLayer?.removeFromSuperlayer()
}
pathLayer = CAShapeLayer()
let path = UIBezierPath()
path.move(to: CGPoint(x: padding + arcPadding, y: padding))
path.addLine(to: CGPoint(x: width - padding - arcPadding, y: padding))
// Top-Right arc
path.addArc(withCenter: CGPoint(x: width - padding - arcPadding, y: padding + arcPadding),
radius: arcPadding,
startAngle: CGFloat(3 * M_PI/2),
endAngle: CGFloat(M_PI * 2),
clockwise: true)
path.move(to: CGPoint(x: width - padding, y: padding + arcPadding))
path.addLine(to: CGPoint(x: width - padding, y: height - padding - arcPadding))
// Bottom-Right arc
path.addArc(withCenter: CGPoint(x: width - padding - arcPadding, y: height - padding - arcPadding),
radius: arcPadding,
startAngle: CGFloat(M_PI * 2),
endAngle: CGFloat(M_PI/2),
clockwise: true)
path.move(to: CGPoint(x: width - padding - arcPadding, y: height - padding))
path.addLine(to: CGPoint(x: width - padding - bottomLineLength, y: height - padding))
path.move(to: CGPoint(x: padding + bottomLineLength, y: height - padding))
path.addLine(to: CGPoint(x: padding + arcPadding, y: height - padding))
// Bottom-Left arc
path.addArc(withCenter: CGPoint(x: padding + arcPadding, y: height - padding - arcPadding),
radius: arcPadding,
startAngle: CGFloat(M_PI/2),
endAngle: CGFloat(M_PI),
clockwise: true)
path.move(to: CGPoint(x: padding, y: height - padding - arcPadding))
path.addLine(to: CGPoint(x: padding, y: padding + arcPadding))
// Top-Left arc
path.addArc(withCenter: CGPoint(x: padding + arcPadding, y: padding + arcPadding),
radius: arcPadding,
startAngle: CGFloat(M_PI),
endAngle: CGFloat(3 * M_PI/2),
clockwise: true)
pathLayer?.rasterizationScale = 2 * UIScreen.main.scale
pathLayer?.shouldRasterize = true
pathLayer?.strokeColor = UIColor(red: 0xFF/255, green: 0xFF/255, blue: 0xFF/255, alpha: 0.5).cgColor
pathLayer?.lineWidth = 2.0
pathLayer?.path = path.cgPath
contentView.layer.addSublayer(pathLayer!)
}
I 장치 회전의 경로를 다시 만드는 layoutSubviews에 전화 해요입니다.
그리고 스크린 샷을 보면 검은 색으로 약간의 검은 색 "구멍"이 경로 근처에 나타납니다. 모두 동일하게 보이며 UIImageView의 이미지에는 나타나지 않습니다.
나는 그것이 내의 CALayer에 관한 것 같아요. 그것을 고치는 방법?
이 전무 충전을 방지하기 위해로 설정 각 둥근 사각형의 안쪽 왼쪽 가장자리를 따라 검은 쐐기. 보기를 확대하면 눈에 띄게됩니다. 또한 윗면, 오른쪽 및 왼쪽 아래 가장자리에 웨지가 있습니다. –
@robmayoff 그가 의미하는 것을보고 기뻐요! – matt