不确定这是Swift / Xcode6还是iOS问题,但那是我的环境。我有一个iOS Swift地图应用程序,在iOS模拟器和iPhone设备方面工作正常但是当我在模拟器或实际设备中使用任何iPad设备时,MapView卡在1024x768,因此它只使用屏幕的一部分(上层)在iPad上。
我抛弃了屏幕边界,视图边界和视图框架宽度和高度,它们都设置为此默认值1024x768,所有原点设置为0,0。如何使用iPad设备的全屏?我认为屏幕值将根据设备,模拟器或真实设置,我可以重置那些,但我似乎无法搞清楚。还想知道这是否可以在MKMapView的故事板中根据比例设置等设置。
所以问题是如何让事情表现出来并为iPad设备使用全屏。
以下是转储这些值的示例代码,非常简单
import UIKit
import MapKit
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var theMapView : MKMapView
override func viewDidLoad() {
super.viewDidLoad()
println("myscreen.bounds.width, height = \(UIScreen.mainScreen().bounds.width) \(UIScreen.mainScreen().bounds.height) ")
println("self.view.bounds.width, height = \(self.view.bounds.width) \(self.view.bounds.height) ")
println("self.view.bounds.origin x,y = \(self.view.bounds.origin.x) \(self.view.bounds.origin.y) ")
println("self.view.frame.width, height = \(self.view.frame.width) \(self.view.frame.height) ")
println("self.view.frame.origin.x,y = \(self.view.frame.origin.x) \(self.view.frame.origin.y) ")
}
和输出结果:
myscreen.bounds.width, height = 768.0 1024.0
self.view.bounds.width, height = 768.0 1024.0
self.view.bounds.origin x,y = 0.0 0.0
self.view.frame.width, height = 768.0 1024.0
self.view.frame.origin.x,y = 0.0 0.0
答案 0 :(得分:2)
从屏幕截图中看起来您已经使用了新的通用故事板,在Any / Any模式下进行编辑时放入地图视图,而不是设置约束。因为没有约束告诉地图视图坚持其超级视图的边缘,所以它仍然是Any / Any Interface Builder画布的大小。
在故事板中,选择地图视图,然后从右下角的小工具栏弹出菜单中选择重置为建议约束。
(您打印的数字并不能说明整个故事,因为您正在打印屏幕大小和容器视图大小,而不是theMapView
的大小。)< / p>