繁体   English   中英

iOS坐标系错误

[英]iOS Coordinate System is Wrong

我似乎在遇到iOS8坐标系问题。 我试图找出这是应该的方式还是错误。 对我来说似乎是个虫子。 但是,当我访问元素的frame属性时,如果将其作为iOS8与iOS 7运行,则会得到不同的坐标。似乎iOS8将数字加倍,或者没有考虑到我在视网膜屏幕上运行它。 同样,它似乎只会影响没有特定限制的框架。 如果我添加宽度约束,则宽度是正确的,但是如果它是自动计算的宽度,则它是两倍。

我在这里https://github.com/smitt0​​4/TestCoodinates创建了一个测试项目,任何人都可以尝试。

还粘贴了此处的情节提要。

import UIKit
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var version: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        label.text = "Frame is \(button.frame)"
        version.text = "iOS: \(UIDevice.currentDevice().systemVersion)"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

结果是

IOS 7

IOS 7

iOS 8

iOS 8

任何见识将不胜感激。 谢谢。

viewDidLoad获取帧坐标永远都不可靠。 在iOS7和iOS8中似乎更可靠。 我发现设置或更改坐标的最佳位置是在viewWillLayoutSubviewsviewDidLayoutSubviews具体取决于您想要的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM