[英]iOS Coordinate System is Wrong
我似乎在遇到iOS8坐标系问题。 我试图找出这是应该的方式还是错误。 对我来说似乎是个虫子。 但是,当我访问元素的frame属性时,如果将其作为iOS8与iOS 7运行,则会得到不同的坐标。似乎iOS8将数字加倍,或者没有考虑到我在视网膜屏幕上运行它。 同样,它似乎只会影响没有特定限制的框架。 如果我添加宽度约束,则宽度是正确的,但是如果它是自动计算的宽度,则它是两倍。
我在这里https://github.com/smitt04/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 8
任何见识将不胜感激。 谢谢。
从viewDidLoad
获取帧坐标永远都不可靠。 在iOS7和iOS8中似乎更可靠。 我发现设置或更改坐标的最佳位置是在viewWillLayoutSubviews
或viewDidLayoutSubviews
具体取决于您想要的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.