2015-06-25 4 views
1

Итак, я пытаюсь создать простой набор осей в пользовательском 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() 

} 


} 

В портретном, это оказывается хорошо:

Portrait

но в ландшафте, вертикальная линия немного толще:

Landscape

Может ли кто-нибудь помочь мне в том, почему это происходит и как это исправить? Благодаря!

ответ

1

Я понял это в конце. Прямо сейчас, режим для пользовательского представления был установлен в «Масштаб для заполнения». Мне просто пришлось изменить его на «перерисовку», чтобы снова запустить drawRect.

+0

Я не ожидал найти решение, используя SO для этого, но ваш вопрос и ответ удалили мне hastle. благодаря – Eyzuky

Смежные вопросы