我似乎无法在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/

10-13 09:26