Autolayout

时间:2015-06-30 11:40:35

标签: ios swift autolayout

其实我在谷歌地图中实现自定义信息窗口, 我用这句话添加它:

    //MARK: GMSMapViewDelegate
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
    let infoView : SpMapInfoWindowView = SpMapInfoWindowView.loadFromNibNamed("SpMapInfoWindowView") as! SpMapInfoWindowView;
    infoView.lblLocationName.text = LONG_TEXT;
    return infoView;
}

我的xib布局设置如下: UI structure 自动布局部分: constraints of the label

如果文字变长,我希望infowindow的高度会增加。 我已经尝试了很多限制因素。优先级,但UILabel的高度无法改变。

我想念什么?

编辑2015-07-02

在尝试了很多优先级和压缩阻力之后,标签会调整大小而不是超级视图

1 个答案:

答案 0 :(得分:0)

将你的uilabel的numberOfLines设置为0.(在IB - 'Lines'属性中)

另外,尝试以编程方式计算标签的高度

label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = text

label.sizeToFit()

然后将容器的大小设置为label.frame.height + your_margins