2015-08-26 7 views
1

Я пытаюсь объединить только левый верхний и нижний левый углы UITextField. Вот код, я использую:Swift Нельзя присвоить значение типа 'CGPath' значению типа 'CGPath?'

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    let maskLayer = CAShapeLayer() 
    maskLayer.path = UIBezierPath(roundedRect: locationText.bounds, byRoundingCorners: .TopLeft | .BottomLeft, cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath 

    locationText.layer.mask = maskLayer; 
} 

Линия

maskLayer.path = UIBezierPath(roundedRect: locationText.bounds, byRoundingCorners: .TopLeft | .BottomLeft, cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath 

производит ошибку

Cannot assign a value of type 'CGPath' to a value of type 'CGPath?' 

Это сбивает с толку меня, так как я был в состоянии установить значения опциями не проблема в другом месте кода. Может ли кто-нибудь помочь мне понять, что я делаю неправильно?

ответ

3

Если вы используете быстрый 2.0 с Xcode бетой это, вероятно, ошибка компилятора, который пытается сказать вам, что вы должны использовать массив для обозначения углов

maskLayer.path = UIBezierPath(roundedRect: self.view.bounds, byRoundingCorners: [.TopLeft, .BottomLeft], cornerRadii: CGSize(width: 10.0, height: 10.0)).CGPath 
+0

Совершенных. Спасибо. –

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