
示例(忽略颜色)
>短文本(注意与较长文本相同的宽度):
>更长的文本(注意与较短文本示例相同的宽度,并且添加更多行的文本):
如果文本可以适合固定宽度的一行,则标签不需要垂直调整大小.但是如果有更多字符,标签应该保持垂直扩展以适应这些附加字符.文本应该一行一行地包裹.文本应从标签的左上角开始.
更具体:
let marker = GMSMarker(position: myLatLng)// see https://stackoverflow.com/a/40211383/1168364 for imageWithVIEwmarker.icon = imageWithVIEw(label) // **how do i create this label?**marker.map = map // map is a GMSMapVIEw
这些标签可以在屏幕上的任何位置.这适用于地图应用程序,其中每个标签将放置在随机位置.标签的位置彼此没有关系.
解决方法 UIVIEw有两种有用的方法: sizeToFit()和 sizeThatFits(_:)第一个将视图调整为最小尺寸以适合子视图的内容,第二个视图根本不更改帧,但返回计算的大小:(1)适合所有子视图和(2)不超过参数大小
所以你可以使用sizeThatFits:
let label = UILabel()overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() label.backgroundcolor = UIcolor.orange label.textcolor = UIcolor.white// label.text = "ultimate Frisbee" label.text = "ultimate Frisbee\nin 3 minutes,\nall welcome|2" label.numberOflines = 10 vIEw.addSubvIEw(label) updateLabelFrame()}func updateLabelFrame() { let maxSize = CGSize(wIDth: 150,height: 300) let size = label.sizeThatFits(maxSize) label.frame = CGRect(origin: CGPoint(x: 100,y: 100),size: size)} 输出:
附:您也可以通过自动布局约束解决您的问题,但我不是以编程方式使用它们的忠实粉丝.
总结以上是内存溢出为你收集整理的ios – swift:以编程方式创建UILabel固定宽度,根据文本长度垂直调整大小全部内容,希望文章能够帮你解决ios – swift:以编程方式创建UILabel固定宽度,根据文本长度垂直调整大小所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)