说明

实现UIStackView中添加可以自动换行的Label

思路分析:

  1. view中添加UIStackView,UIStackView添加Label;
  2. UIStackView的constraint为上,左,右;
  3. Label的constraint为左,右;Label的numberOfLine = 0

Demo 代码如下:

//
//  ViewController.swift
//  StackViewLabelDemo
//
//  Created by zgpeace on 2021/3/23.
//import UIKitclass ViewController: UIViewController {private lazy var stackView: UIStackView = {let stackView = UIStackView()stackView.translatesAutoresizingMaskIntoConstraints = false
//        stackView.alignment = .centerstackView.axis = .horizontalstackView.distribution = .fillreturn stackView}()private lazy var label: UILabel = {let label = UILabel()label.translatesAutoresizingMaskIntoConstraints = falselabel.numberOfLines = 0label.lineBreakMode = .byWordWrappinglabel.font = UIFont.systemFont(ofSize: 16)label.textColor = .orangereturn label}()override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.setupViews()}private func setupViews() {self.view.translatesAutoresizingMaskIntoConstraints = falseself.view.addSubview(stackView)stackView.addArrangedSubview(label)label.text = """For a horizontal stack view that has a UILabel as one of its views, in Interface Builder firstly set label.numberOfLines = 0. This should allow the label to have more than 1 line. This initially failed to work for me when the stack view had stackView.alignment = .fill. To make it work simply set stackView.alignment = .center. The label can now expand to multiple lines within the UIStackView.The Apple documentation saysFor all alignments except the fill alignment, the stack view uses each arranged view’s intrinsic​Content​Size property when calculating its size perpendicular to the stack’s axisNote the word except here. When .fill is used, the horizontal UIStackView does NOT resize itself vertically using the arranged subviews' sizes."""NSLayoutConstraint.activate([stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 8.0),stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -8.0),label.leadingAnchor.constraint(equalTo: stackView.leadingAnchor),label.trailingAnchor.constraint(equalTo: stackView.trailingAnchor)
//            label.topAnchor.constraint(equalTo: stackView.topAnchor),
//            label.bottomAnchor.constraint(equalTo: stackView.bottomAnchor)])}}

参考

https://stackoverflow.com/questions/34386528/multiline-label-in-uistackview

Swift 5 UIStackView中添加自动换行的Label相关推荐

  1. R语言ggplot2可视化在可视化图形的X轴标签中添加温度摄氏度符号(add temperature degree symbol on axis label)

    R语言ggplot2可视化在可视化图形的X轴标签中添加温度摄氏度符号(add temperature degree symbol on axis label) 目录

  2. 窗体中添加标签Label、Icon图标

    http://lixiyu.blog.51cto.com/4136883/1312248(原文) 一,在窗体中创建一个带有指定文本的标签对象并添加一个图像 实现界面: 详细代码: 1 2 3 4 5 ...

  3. java 向word中添加excel附件并向excel单元格中加入图片并压缩图片并根据图片动态控制单元格高度宽度

    word中加入excel附件 excel单元格中插入图片 word freemarker Excel poi 制作, jxl 插入图片 压缩图片/宽高,动态控制单元格高度与宽度 1.word 需要模板 ...

  4. 飞利浦dicom_如何在飞利浦色相系统中添加第三方智能灯泡

    飞利浦dicom The Philips Hue system was one of the first unified smart bulb systems on the market and re ...

  5. 总结Cocos2d-x 3.0 中新字体标签Label

    来源网址:http://cn.cocos2d-x.org/tutorial/show?id=1624 在3.x中,废弃了2.x里的LabelTTF.LabelAtlas.LabelBMFont三个字体 ...

  6. css在中元素添加元素,css - 在伪元素内容中添加换行符到:: after或:: before

    css - 在伪元素内容中添加换行符到:: after或:: before 我无法访问页面的HTML或PHP,只能通过CSS进行编辑. 我一直在网站上进行修改并通过content或::before伪元 ...

  7. python tkinter 滚动条_如何在tkinter窗口中添加滚动条?

    我有一个tkinter程序:import urllib.request from tkinter import * root = Tk() root.iconbitmap(default='icon. ...

  8. Arc Engine 中添加气泡提示框

    一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的 ...

  9. 如何不用重启在CentOS 7/ RHEL 7虚拟机中添加一块新硬盘

    如何不用重启在CentOS 7/ RHEL 7虚拟机中添加一块新硬盘 通常在你在虚拟机中添加一块新硬盘时,你可能会看到新硬盘没有自动加载.这是因为连接到硬盘的SCSI总线需要重新扫描来使得新硬盘可见. ...

  10. HTML表中的自动换行

    我一直在使用word-wrap: break-word将文本div和span . 但是,它似乎在表单元格中不起作用. 我有一个表设置为width:100% ,有一行和两列. 列中的文本尽管使用上述wo ...

最新文章

  1. 潘云鹤院士:AI2.0和工业经济发展智能化
  2. python对文件进行压缩解压缩基于zip格式
  3. 如何确定coordinator
  4. java获取页面标签_java获取网页源代码后,提取标签内容……
  5. 解读程序员的武侠世界,顶级程序员是内外兼修的大侠,那么你呢?
  6. opencv qt5安装linux,Ubuntu OpenCV安装和设置(Qt5吗?)
  7. javascript Array
  8. 迄今为止最详细的ubuntu无盘工作站安装指南
  9. 用Python来判断输入的身份证号的性别
  10. 工作中有可能用到的运维小知识《现查现用》
  11. GPU_GEMS_自然态_渲染水焦散
  12. eas之F7专用选择界面设置
  13. AWS 上的云原生 Jenkins
  14. mapi java_Powershell从注册表中查询默认MAPI客户端的例子
  15. 周记九--不忘记本心是黑暗中不会褪色的路引
  16. 2020年 ICLR 国际会议最终接受论文(poster-paper)列表(四)
  17. PowerShell操作DNS创建SRV记录
  18. phpcms怎么做专题页面
  19. 进程与进程描述符(task_struct)
  20. 【新华三】网络工程师 H3C设备-如何配置单臂路由,实现不同网段通信?来来来~轻松掌握单臂路由技术原理!

热门文章

  1. python解base64_python模块之base64
  2. linux命令行改变时区,Linux命令行操作修改系统时区
  3. fastq质量值_高通量测序数据的质量控制FastQC
  4. Canvas 实现小程序动画
  5. 动态规划——Palindrome Partitioning II
  6. E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
  7. 你知道怎么用Idea抽取方法、创建class吗?
  8. Maven_1 安装配置
  9. Android游戏开发中使用Libgdx引擎遇到的问题及解决办法汇总
  10. java 调用存储过程structdescriptor_Spring SimpleJdbcCall如何在存储过程调用中为oracle STRUCT指定模式...