如何在Swift中将图片居中放置在状态栏下方?

3

我似乎找不到正确的代码。 我想把一张图片放在状态栏下方20个点的位置(这将是Y轴),并使其居中(当然这将是X轴)。 我可以很容易地使用Storyboard实现,但我正在努力以编程方式完成它。 假设这是我的代码:

var image: UIImage = UIImage(named: "someImage.png")!
            var bgImage = UIImageView(image: image)
            //Tried with self.view.frame.size.height but not working
            bgImage.frame = CGRect(x: 0, y: self.view.frame.size.height - 20, width: self.view.frame.size.width, height: 64)

           //also tried this which not worked as well 
          //  bgImage.center = CGPointMake(self.view.frame.width, self.view.frame.hight - 20)
            self.view.addSubview(bgImage)

我在苹果文档中搜索,但不太清楚,希望能得到帮助。


bgImage.frame = CGRect(x: 0, y: 20, width: self.view.frame.size.width, height: 64) 背景图片.frame = CGRect(x: 0, y: 20, 宽度: self.view.frame.size.width, 高度: 64) - HamzaGhazouani
2个回答

10

一旦bgImage大小正确,那么解决此问题的一般方法是:

bgImage.frame.origin.y = 20.0 // 20 down from the top
bgImage.frame.origin.x = (self.view.bounds.size.width - bgImage.frame.size.width) / 2.0 // centered left to right.

我在想,如果我想让Y距离底部上方有20个点,应该如何编写代码?此外,我应该在哪里找到相关文档资料? - XcodeNOOB
1
bgImage.frame.origin.y = (self.view.bounds.size.height - bgImage.frame.size.height) - 20.0。当我感到困惑时,我会在纸上画出来,但是阅读视图和窗口架构以获得基本理解。 - Jeffery Thomas

2
像这样怎么样:
var image: UIImage = UIImage(named: "someImage.png")
var new_view = UIView(image: image)
view.addSubview(new_view);

// This is the default setting but be explicit anyway...
new_view.setTranslatesAutoresizingMaskIntoConstraints(true)

new_view.autoresizingMask = UIViewAutoresizing.FlexibleLeftMargin |
    UIViewAutoresizing.FlexibleRightMargin 
new_view.center = CGPointMake(self.view.frame.size.height - 20, view.bounds.midY)

这段代码会添加新的子视图,对其设置灵活的左右边距,并将其居中放置在状态栏下方。

我在这个相关问题中找到了这段编程代码。


我测试了一下,它可以工作。我可能会使用它 - 谢谢你提供的信息。 - XcodeNOOB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接