使用autolayout时,UIImageView长度是多余的

时间:2016-11-25 03:45:39

标签: ios objective-c uitableview uiimageview autolayout

我正在尝试使用具有可选长度的ImageView呈现我的UITableViewCell。这是我的布局:

my autolayout

但我的结果看起来像这样(从顶部和底部的冗余): enter image description here enter image description here 如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

问题出现在ContentHuggingPriorityContentCompressionResistancePriority

尝试使用此

[NSLayoutConstraint autoSetPriority:ALLayoutPriorityRequired forConstraints:^{
    [yourImageView autoSetContentCompressionResistancePriorityForAxis:ALAxisHorizontal];
    [yourImageView autoSetContentHuggingPriorityForAxis:ALAxisHorizontal];
}];

答案 1 :(得分:0)

没有什么可以检测代码中图像的大小。

  1. 在图像视图上设置高度约束。常数并不重要,因为您将在以后以编程方式更改它。

  2. 将该高度约束设为IBOutlet并将其连接到IB

    @property (strong, nonatomic) IBOutlet NSLayoutConstraint *imageViewHeight
    
  3. 获取图片的大小。 Reference

    UIImage * img = [UIImage imageNamed:@"someImage.png"];
    CGSize imgSize = img.size;
    
  4. 更改NSLayoutConstraint常量。

    self.imageViewHeight.constant = imgSize.height