Итак, я пытаюсь создать простой набор осей в пользовательском UIView. Вот код:UI Bezier Path изменяет LineWidth при изменении ориентации экрана.
@IBDesignable
class GraphingView: UIView {
@IBInspectable
var axesColor : UIColor = UIColor.redColor() { didSet{ setNeedsDisplay() } }
@IBInspectable
var lineWidth : CGFloat = 1.0 { didSet{ setNeedsDisplay() } }
var origin : CGPoint{
return convertPoint(center, fromView: superview)
}
override func drawRect(rect: CGRect) {
let axesPath = UIBezierPath()
axesPath.moveToPoint(CGPoint(x: 0, y: origin.y))
axesPath.addLineToPoint(CGPoint(x: bounds.width, y: origin.y))
axesPath.moveToPoint(CGPoint(x: origin.x, y: 0))
axesPath.addLineToPoint(CGPoint(x: origin.x, y: bounds.height))
axesPath.lineWidth = lineWidth
axesColor.set()
axesPath.stroke()
}
}
В портретном, это оказывается хорошо:
но в ландшафте, вертикальная линия немного толще:
Может ли кто-нибудь помочь мне в том, почему это происходит и как это исправить? Благодаря!
Я не ожидал найти решение, используя SO для этого, но ваш вопрос и ответ удалили мне hastle. благодаря – Eyzuky