首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UIButton始终截断iOS 15上的文本

UIButton是iOS开发中常用的用户界面控件,用于创建可点击的按钮。在iOS 15上,如果按钮的文本过长,会出现截断的情况。

UIButton的截断文本问题可以通过以下几种方式解决:

  1. 调整按钮的宽度:可以通过设置按钮的frame或使用Auto Layout来调整按钮的宽度,使其能够完整显示文本内容。
  2. 使用自适应文本:iOS 15引入了新的API来处理按钮文本的截断问题。可以使用UIButton的adjustsFontForContentSizeCategory属性,配合UIFontMetrics来自动调整文本的字体大小,以适应按钮的大小。

示例代码:

代码语言:txt
复制
button.titleLabel?.adjustsFontForContentSizeCategory = true
button.titleLabel?.font = UIFont.preferredFont(forTextStyle: .body)
button.titleLabel?.adjustsFontSizeToFitWidth = true
button.titleLabel?.minimumScaleFactor = 0.5
  1. 使用titleLabel.lineBreakMode属性:可以设置按钮文本的换行模式,以控制文本的截断方式。常用的换行模式有:
  • .byTruncatingTail:在文本末尾截断,并显示省略号。
  • .byWordWrapping:按单词换行,不截断文本。

示例代码:

代码语言:txt
复制
button.titleLabel?.lineBreakMode = .byTruncatingTail
  1. 使用自定义按钮样式:可以通过自定义按钮的外观来解决文本截断问题。可以使用NSAttributedString来设置按钮的文本样式,包括字体、颜色、行间距等。

示例代码:

代码语言:txt
复制
let attributedString = NSAttributedString(string: "Long Button Text", attributes: [
    .font: UIFont.systemFont(ofSize: 16),
    .foregroundColor: UIColor.white,
    .paragraphStyle: NSParagraphStyle.default
])
button.setAttributedTitle(attributedString, for: .normal)

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动应用分析(MTA):https://cloud.tencent.com/product/mta
  • 腾讯云移动推送(TPNS):https://cloud.tencent.com/product/tpns
  • 腾讯云移动直播(MLVB):https://cloud.tencent.com/product/mlvb
  • 腾讯云云点播(VOD):https://cloud.tencent.com/product/vod
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 腾讯云云函数(SCF):https://cloud.tencent.com/product/scf
  • 腾讯云云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 腾讯云云安全中心(SSC):https://cloud.tencent.com/product/ssc
  • 腾讯云人工智能开放平台(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网开发平台(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Tencent XR):https://cloud.tencent.com/product/xr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 自定义UISearchController的外观

    以前我们在项目中使用搜索框的时候,如果用系统自带的控件则是使用UISearchDisplayController,而自从iOS8之后,系统重新给我们提供了一个搜索控件:UISearchController。在UISearchController中我们无需再自己初始化UISearchBar,只需要提供searchResult展示的视图。然而在开发中,我们往往需要根据项目的风格来改变UISearchBar的外观,通过继承的方式,我们可以完全定制符合项目风格的外观,然而有些情况下我们很难短时间内完成全部的外观定制工作,譬如我们项目用的好几个旧框架,代码中充斥着各种写好的UISearchBar的展示,而改动底层框架并不是一个较好地实践。于是我开始搜索并总结出了几个不通过继承的方式来更改UISearchBar外观的方法。

    02

    UIButton实现各种图文结合的效果以及原理

    iOS的UIButton是一个非常常见而且常用的控件,我们一般用他来实现某个功能的提交以及选择操作。我们可以建立只有文字的Button,也可以建立只有图片的Button,具体的需求要看界面设计的具体情况。有时候我们希望应用的界面元素是丰富多彩的,有时候希望建立一个图文结合的控件来响应用户的手势操作,因此建立一个即有图片也有文字的按钮来实现功能,这个只需要分别调用UIButton的setTitle:forState:和setImage:forSate:两个方法就可以实现具有图片和文字功能的按钮。但是系统默认的图文结合的按钮布局是:图片在左边而文字在右边,而且整体水平和垂直居中。比如下面这个图文按钮:

    01
    领券