2016-06-28 16 views
2

だから、私が持っている以下のXIB制約が尊重されない

enter image description here

tableviewcellは私が決められたことからきたこの

enter image description here

のように見えるとしてロードこのXIB私はTableViewが必要ないので、私はXIBクラスをUITableViewCellからUIViewに変更しました。 ViewControllerで私は

var nView = MyChartView.instanceFromNib() as! MyChartView 
self.view.addSubview(nView) 

)(のviewDidLoadにこのコードを追加し、あなたが見ることができるように、私は結果

enter image description here

としてこれを持って、それが余白を無視し、右側に続けて(無視私はそれを使って問題をデバッグしようとしていたので、赤色でした。チャートデータにも問題はありません。 xibのフレーム幅を印刷したところ、画面サイズよりもかなり大きいことがわかりましたが、修正できませんでした。誰でも問題を把握できますか?

答えて

2

、あなたはまた、サブビューとそのスーパー

var nView = MyChartView.instanceFromNib() as! MyChartView 
self.view.addSubview(nView) 
nView.translatesAutoresizingMaskIntoConstraints = false 
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[nView]|", options: [], metrics: nil, views: ["nView": nView])) 
view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[nView]|", options: [], metrics: nil, views: ["nView": nView])) 
1

サブビューを追加するときに正確なサイズを指定するか、MyChartViewインスタンスとそのスーパービューの間にプログラムで制約を追加することによって、MyChartViewインスタンスの幅を制限していません。これらのいずれかを実行することなく、ビューのサイズはxibにあるものと一致します。あなたがプログラムでサブビューを追加すると

+0

間の制約を追加する必要があり、私は、画面に合うようにMyChartViewインスタンスのフレームを変更しようとしたが、それは何の違いが行われていません。プログラムで制約を追加しようとしています。しかし、なぜこの問題はテーブルビューでは起こりませんか? –

+2

私は 'MyChartView'の' translateResizingMaskToConstraints'が 'false'で、スーパービュー内の配置を指示するために(' frame'を設定するだけではなく)制約を追加することを提案したいと思います。 NRitHは正しいかもしれません。あなたのNIB自体に制約があるかもしれませんが、それ自体とスーパービューの間には何もありません。それでも問題が解決しない場合は、質問を編集してプログラムで追加した制約を表示してから、ビューデバッガまたはlldbを使用して実行時に制約を表示する必要があります。 – Rob

+0

私はあなたが何を意味するかを見て、彼は例を持っていたので、私はAnil Vargheseの答えを受け入れました。私はまだそれがなぜtableviewで適切に働いたのか分からない。それはテーブルビューの制約を推測していますか? –

関連する問題