创建一个"自我调整" UITableViewHeaderView

时间:2016-02-17 11:36:21

标签: ios objective-c uitableview autolayout

好的,一个真正简单的版本打破......

在笔尖中创建UIView

为其添加imageView。为图像视图提供1:1的宽高比的约束。

现在将约束从图像视图添加到视图的边缘。 (0尺寸将其固定到边缘)。

现在将视图添加为UITableView tableHeaderView

在不同设备上运行应用程序时,它将破坏约束并删除宽高比约束。我不想要这个,我希望它将视图的高度更改为等于宽度。

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:0x7fad01efbbe0 UIImageView:0x7fad047209b0.width == UIImageView:0x7fad047209b0.height>",
    "<NSLayoutConstraint:0x7fad04703630 H:[UIImageView:0x7fad047209b0]-(0)-|   (Names: '|':VenueHeaderView:0x7fad047204c0 )>",
    "<NSLayoutConstraint:0x7fad04703680 V:|-(0)-[UIImageView:0x7fad047209b0]   (Names: '|':VenueHeaderView:0x7fad047204c0 )>",
    "<NSLayoutConstraint:0x7fad04703740 V:[UIImageView:0x7fad047209b0]-(0)-|   (Names: '|':VenueHeaderView:0x7fad047204c0 )>",
    "<NSLayoutConstraint:0x7fad04703790 H:|-(0)-[UIImageView:0x7fad047209b0]   (Names: '|':VenueHeaderView:0x7fad047204c0 )>",
    "<NSLayoutConstraint:0x7fad0429bcf0 'UIView-Encapsulated-Layout-Height' V:[VenueHeaderView:0x7fad047204c0(300)]>",
    "<NSLayoutConstraint:0x7fad0429bca0 'UIView-Encapsulated-Layout-Width' H:[VenueHeaderView:0x7fad047204c0(375)]>" )

Will attempt to recover by breaking constraint  <NSLayoutConstraint:0x7fad01efbbe0 UIImageView:0x7fad047209b0.width == UIImageView:0x7fad047209b0.height>

似乎有超级视图中添加了约束UIView-Encapsulated-Layout-Height。但这些都添加了错误的值。它应该根据标题视图的内部约束重新计算这些内容。

0 个答案:

没有答案