UIImageView无法以编程方式更改位置

时间:2015-10-13 11:18:09

标签: ios swift uiimageview

我目前正在开发iPhone应用程序,我需要重新定位UIImageView。到目前为止,这是我迄今所做的:

import UIKit
import CoreGraphics
import AVFoundation
import QuartzCore

class _DBubbleViewController: UIViewController {
    @IBOutlet weak var BubbleBackground: UIImageView!
    @IBOutlet weak var Bubble: UIImageView!


override func viewWillAppear(animated: Bool) {
Bubble.frame = CGRect(x: 168, y: 220, width: Bubble.bounds.size.width,      height: Bubble.bounds.size.height)

我已检查@IBAction已正确连接,但是当我运行该程序时,UIImageView位置未更改。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:5)

在Storyboard中,单击您的UIImageView并为前缘添加约束,为上边缘添加约束。

CTRL将视图层次结构中的每个约束拖动到swift文件中,并为每个约束添加IBOutlets:将它们称为bubbleLeadingConstraintbubbleTopConstraint

将您的代码更改为:

override func viewWillAppear(animated: Bool) {
  super.viewWillAppear()

  bubbleLeftConstraint.constant = 168;
  bubbleTopConstraint.constant = 220;
}

如果你想改变宽度/高度,也要为它添加约束并在代码中设置。

您现在可以通过更改约束来更改位置。您还可以通过更改常量并将self.view.layoutIfNeeded()放在动画块中来为任何更改设置动画。