我已經看到涉及自動佈局的垂直調整大小的答案,但我創建的UILabel
只在運行時需要。 (我可能會從零的任何地方需要很多這樣的標籤。)swift:以編程方式創建UILabel固定寬度,根據文本長度垂直調整大小
例子(忽略顏色)
- 短信(注意相同的寬度更長的文本):
- 更長的文本(注意與更短的文本示例相同的寬度,用於添加文本的更多行):
如果文本可以放在固定寬度的一行中,則標籤不需要垂直調整大小。但是如果有更多的字符,標籤應該保持垂直擴展以適應這些額外的字符。文本應該一直在線後繞行。文本應該從標籤的左上角開始。
更具體:
let marker = GMSMarker(position: myLatLng)
// see http://stackoverflow.com/a/40211383/1168364 for imageWithView
marker.icon = imageWithView(label) // **how do i create this label?**
marker.map = map // map is a GMSMapView
這些標籤都可在屏幕上的任何地方。這是一個地圖應用程序,其中每個標籤將放置在一個隨機位置。標籤的位置彼此沒有關係。
可能重複[調整UILabel高度取決於文本](http://stackoverflow.com/questions/446405/adjust-uilabel-height-depending-on-the-text) – alexburtnik
@alexburtnik你可以請重新考慮這個因爲不是重複的?該解決方案在這裏似乎不起作用。注意固定寬度的附加要求。也許你對下面的解決方案不起作用有一些想法。 – lf215
我已收回近距離投票,但它仍然是重複的。以下解決方案假定您使用自動佈局約束。我的解決方案下面是一個替代方案,它是手動更新框架。 – alexburtnik