視覚的な言語で制約を作成していますが、追加しようとするとエラーが発生します。iOS Contestraints原因SIGABRTエラー
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse constraint format:
Expected a view
V:|==[timer]==|
^'
だから==を削除し、それが動作します:
class TimerViewController : UIViewController{
let timer = TimerView()
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
self.view.addSubview(timer)
self.createContraints()
}
func createContraints(){
self.timer.translatesAutoresizingMaskIntoConstraints = false
let horizontalConstraints =
NSLayoutConstraint.constraints(withVisualFormat: "H:|[timer]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["timer" : timer])
let verticleContraints =
NSLayoutConstraint.constraints(withVisualFormat: "V:|==[timer]==|", options: NSLayoutFormatOptions(), metrics: nil, views: ["timer" : timer])
self.view.addConstraints(horizontalConstraints)
self.view.addConstraints(verticleContraints)
}
}
コードでこれを行う理由はありますか?ほとんどの場合、インタフェースビルダーでこのようなことを実行するのははるかに簡単で、エラーが起こりにくいです。 – Adrian
@Brandonに同意すると、ここに==ここにコンソールを追加する必要はありません。このようなエラーが表示されます。 'NcnvalidArgumentException'、理由: '制約フォーマットを解析できません: ビュー V:| == [v0] == | ^ ' 'は、あなたの問題の原因を教えてくれます。 – 3stud1ant3