2016-03-09 41 views
0

我似乎無法改變我的MKMapView在Swift中的大小。一個人會如何繼續呢?如何在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年3月9日18:43:02.697 Map [19782:3177712]無法同時滿足約束條件。 以下列表中的至少一個約束可能是您不想要的。 試試這個: (1)看看每個約束,並試圖找出你不期望的; (2)找到添加不需要的約束或約束並修復它的代碼。 ( 「」, 「」 )

將嘗試打破約束

請在UIViewAlertForUnsatisfiableConstraints 一個象徵性的斷點趕上這在調試器來恢復。 中列出的UIView的UIConstraintBasedLayoutDebugging類別中的方法也可能有所幫助。從調試消息: 由於終止信號15

我真的不明白這一點,任何想法?

+0

你說它讓應用程序崩潰,控制檯在崩潰時說什麼? –

+0

查看編輯過的文章! –

+0

我總是通過故事板添加了我的約束,但是在你的代碼中,你的約束有一個'toItem'參數,是'self.view'? –

回答

0

在這種情況下,你應該使用

self.mapView.addConstraint(widthConstraint) 

self.mapView.addConstraint(heightConstraint) 

您嘗試添加屬於的MapView到它的父約束,這不是它應該是的方式。如果要在mapview和另一個視圖之間添加垂直距離,則應將其添加到超級視圖,但在這種情況下不能。

相關問題