4

したがって、私のテーブルビューには画像が表示されます。すべてのセルは基本的に、セル全体を埋める画像contentViewです。画像の縦横比が異なるため、テーブル ビューの幅と画像の縦横比に応じてセルの高さを調整する必要があります。この Ray Wenderlich のチュートリアルに従いましたが、制約の競合が発生しました。imageView画像は、高さの制約を変更することによってサイズ変更されます。myImageViewHeight.constant = tableView.frame.width / aspectRatio

2016-06-16 13:56:25.823 MyApp[92709:5649464] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. 
Try this: 
    (1) look at each constraint and try to figure out which you don't expect; 
    (2) find the code that added the unwanted constraint or constraints and fix it. 
(
"<NSLayoutConstraint:0x7fbcdaf5c190 V:[UIImageView:0x7fbcdaf5c300(303)]>",
"<NSLayoutConstraint:0x7fbcdaf5b460 V:|-(0)-[UIImageView:0x7fbcdaf5c300]   (Names: '|':UITableViewCellContentView:0x7fbcdaf52230 )>",
"<NSLayoutConstraint:0x7fbcdaf5b4b0 V:[UIImageView:0x7fbcdaf5c300]-(0)-|   (Names: '|':UITableViewCellContentView:0x7fbcdaf52230 )>",
"<NSLayoutConstraint:0x7fbcdaf5e550 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fbcdaf52230(100)]>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7fbcdaf5c190 V:[UIImageView:0x7fbcdaf5c300(303)]>

画像ビューには次の制約があり、contentViewスーパービューとしてセルがあります。

制約

テーブルビューコントローラークラスでは、私は使用しています

self.tableView.estimatedRowHeight = 80
self.tableView.rowHeight = UITableViewAutomaticDimension

私もこれを試しました-同じ結果です。

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

を取り除く必要があると思います'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7fbcdaf52230(100)]>"が、どうすればよいですか?また、セル内に多数のラベルを含めるだけでなく、動的コンテンツを含むテーブルビューを適切に作成する方法に関する何らかのドキュメント/チュートリアルを知っている人はいますか? 画像ビューがラベルに置き換えられた場合、 私のコードは問題なく動作します...

4

2 に答える 2

12

実装は正しいです。コードや制約を変更しないでください。警告を削除するのは簡単です。高さの制約を選択し、その優先度を 1000 から 999 に下げるだけで、警告が修正されます。それでも発生する場合は、お知らせください。 .

于 2016-06-16T13:19:56.930 に答える