我似乎无法在Swift中更改MKMapView的大小。人们将如何进行呢?
我尝试了两种方法,但是没有运气:
var rect: CGRect = self.view.frame;
rect.origin.y = 0;
self.mapView.frame = rect;
还有一个我使用约束和自动布局的地方,但是它使应用程序崩溃了。有任何想法吗?
编辑:
当我编写此代码时,它不会崩溃,但是会在输出中写一些警告:
let height = UIScreen.mainScreen().bounds.height
let width = UIScreen.mainScreen().bounds.width
let widthConstraint = NSLayoutConstraint(item: mapView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: width)
self.view.addConstraint(widthConstraint)
let heightConstraint = NSLayoutConstraint(item: mapView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: height)
self.view.addConstraint(heightConstraint)
输出显示:
2016-03-09 18:43:02.697 Map [19782:3177712]无法同时满足约束。
以下列表中的约束中至少有一个是您不想要的约束。
尝试这个:
(1)查看每个约束,并尝试找出不期望的约束;
(2)查找添加了一个或多个不必要约束的代码并进行修复。
(
“”,
”
)
将尝试通过打破约束来恢复
在UIViewAlertForUnsatisfiableConstraints上创建符号断点
在调试器中捕获它。中的方法
UIView中列出的UIConstraintBasedLayoutDebugging类别,在
可能也有帮助。来自调试器的消息:
由于信号15终止
我真的不太明白,有什么想法吗?
最佳答案
在这种情况下,您应该使用
self.mapView.addConstraint(widthConstraint)
和
self.mapView.addConstraint(heightConstraint)
您试图将属于mapView的约束添加到其超级视图中,这不是应该的方式。如果要在地图视图和另一个视图之间添加垂直距离,则可以将其添加到超级视图中,但在这种情况下不可以。
关于ios - 如何在Swift中更改MKMapView的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35898314/