设置子视图的新框架不按预期工作

时间:2015-04-15 12:35:37

标签: ios objective-c iphone swift autoresize

我遇到autoResizing时遇到问题。首先,我有一个强制进入横向模式的VC,并且这个子视图添加如下:

let upLeftArrow = UIImageView()

var height = CGFloat()
var width = CGFloat()

    override func viewDidLoad() {
        super.viewDidLoad()

    self.height = self.view.frame.height
    self.width = self.view.frame.width

        upLeftArrow.image = UIImage(named: "upLeftArrow")
        upLeftArrow.autoresizingMask = UIViewAutoresizing.FlexibleBottomMargin | UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight | UIViewAutoresizing.FlexibleLeftMargin | UIViewAutoresizing.FlexibleRightMargin
        upLeftArrow.contentMode = .ScaleAspectFit
        upLeftArrow.frame = CGRectMake(0.2 * width, 0.17 * height, height * 0.0577 * 0.935, height * 0.0577)

    self.view.addSubview(upLeftArrow)
}

但是,如果我在手机处于纵向模式时打开此视图,然后使用下面的功能更改子视图的框架,则我的子视图会将其更改为纵向框架。这对我来说没有意义,因为我已经声明了宽度和高度变量并在我的viewDidLoad函数中使用它们。

我如何更改框架:

func changeFrame(){

    self.upLeftArrow.frame = CGRectMake(0.2 * width, 0.17 * height, height * 0.0577 * 0.935, height * 0.0577)

}

请帮助我理解为什么会发生这种情况,我们将不胜感激。

0 个答案:

没有答案