如何在Swift中更改MKMapView的大小?

时间:2016-03-09 17:19:39

标签: ios swift mkmapview

我似乎无法在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而终止

我真的不明白这个,有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下,您应该使用

<img class="img-responsive" ng-src="{{photo.media.m}}">

self.mapView.addConstraint(widthConstraint)

您正在尝试将属于mapView的约束添加到其超级视图中,这不是它应该的方式。如果要在mapview和另一个视图之间添加垂直距离,则可以将其添加到superview,但不是在这种情况下。

答案 1 :(得分:0)

对于约束警告,您尝试添加约束而不禁用自动提升掩码到约束转换中。

尝试添加此行:

mapView.translatesAutoresizingMaskIntoConstraints = false

致谢