自动布局启用时更改比例,位置问题

时间:2014-02-09 02:28:28

标签: ios autolayout

老实说,我不是汽车布局的忠实粉丝。但根据工作要求,我必须采用自动布局,当我试图在自动布局中进行简单的比例更改时,位置出错了。

这是图片在故事板中的外观

enter image description here

以下是禁用自动布局时的样子(我正在寻找的结果)

enter image description here

以下是启用自动布局(错误位置)时的外观(

enter image description here

这是我的约束

enter image description here

我改变比例的代码:

self.batImageView.transform = CGAffineTransformMakeScale(3, 3);

我甚至需要10个声誉来上传图片..和10个声望发布超过2个链接....

任何人都可以帮我发布这些图片吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

来吧! Autolayout非常有趣! :)

没有测试过,但这样的事情应该有效:

  1. 删除所有限制
  2. 向水平居中添加2个约束,并将batImageView垂直居中放入视图中。
  3. 再添加2个约束,一个用于原始宽度,一个用于原始高度。
  4. 你的batImageView约束在故事板中应如下所示:

    batImageView constraints

    现在,您可以将IBOutlets的宽度和高度添加到您的类中:

    @property IBOutlet NSLayoutConstraint *batImageViewWidthConstraint;
    @property IBOutlet NSLayoutConstraint *batImageViewHeightConstraint;
    

    所以你差不多完成了,每当你必须改变imageView的大小时,只需设置新的约束,例如:

    CGFloat scaleFactor = 3.0;
    self.batImageViewWidthConstraint.constant = scaleFactor * self.batImageViewWidthConstraint.constant;
    self.batImageViewHeightConstraint.constant = scaleFactor * self.batImageViewHeightConstraint.constant;
    [self setNeedsUpdateConstraints];