ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SelectableTextView自定义完全清单:17个属性玩转文本样式与选中外观

SelectableTextView自定义完全清单:17个属性玩转文本样式与选中外观 SelectableTextView自定义完全清单17个属性玩转文本样式与选中外观【免费下载链接】SelectableTextViewA text view that supports selection and expansion项目地址: https://gitcode.com/gh_mirrors/se/SelectableTextViewSelectableTextView 是一款支持文本选择与展开的 iOS 文本视图控件。本文以 17 个属性为线索带你快速掌握 SelectableTextView 自定义属性配置方法覆盖文本样式、字体颜色、换行截断与选中外观让新手也能一键调出理想的文字展示效果。快速上手为什么需要这 17 个属性原生的UILabel/UITextView对文字选择支持有限而 SelectableTextView 把“选中谁、长什么样、能展开几行”拆成了 17 个独立开关。你只要关心三类问题显示什么文本内容、字体、颜色怎么排对齐、行数、换行、截断、行距、内边距怎么交互选中外观、是否可选中、是否可滚动、是否展开所有属性都定义在主类源文件Source/SelectableTextView.swift中改完会自动刷新布局无需手动重绘。17 个属性总览速查表#属性类型默认值作用1textString?nil纯文本内容2attributedTextNSAttributedString?nil富文本覆盖普通文本3fontUIFont系统 17pt字体4textColorUIColor深色文字默认文字颜色5textAlignmentTextAlignment.left左 / 中 / 右对齐6numberOfLinesInt1显示行数0 表示不限7lineBreakModeLineBreakMode.wordWrap换行方式8truncationModeTruncationMode.clipping末行截断方式9lineSpacingCGFloat0行间距10textContainerInsetsUIEdgeInsets零内容内边距11selectionAttributes[NSAttributedStringKey: AnyObject]?nil选中文字外观12isSelectionEnabledBooltrue是否允许选择13isScrollEnabledBoolfalse是否可滚动14isExpandedBool?nil展开按钮状态15delegate弱引用nil主代理16scrollDelegate弱引用nil滚动事件代理17textContentSizeCGSize只读文本内容尺寸小窍门想快速定位某个属性的实现直接打开Source/SelectableTextView.swift每个属性都带didSet自动刷新。文本内容text 与 attributedTexttext负责纯文本设置后会自动套用当前的字体与颜色。attributedText负责富文本一旦赋值会覆盖text、font、textColor适合逐段定制样式如部分文字加粗、变色。新手建议只改整体样式用text需要局部高亮、变色、混排字号时再上attributedText。字体颜色font、textColor 与 IB 的 fontSizefont控制整体字体默认systemFont(ofSize: 17)。textColor控制默认文字颜色默认深色文字darkText。在 Interface Builder 中不方便直接拖UIFont对象所以源文件Source/InterfaceBuilder.swift额外暴露了fontSize读写字号、trucateTail切换截断等便捷属性让可视化面板更好用。布局换行对齐、行数与截断模式这四个属性决定文字“怎么摆”textAlignment左 / 中 / 右对齐默认左对齐。numberOfLines显示行数默认 1 行设为 0 表示不限制行为类似UILabel。lineBreakMode换行策略当前支持.wordWrap按词换行。truncationMode最后一行放不下时如何处理可选.clipping直接裁切或.truncateTail尾部省略号。搭配示例单行卡片标题常用numberOfLines 1truncationMode .truncateTail让超长内容优雅地以“…”收尾。行距与内边距lineSpacing 与 textContainerInsetslineSpacing行间距默认 0支持负值以收紧多行文本。textContainerInsets四边内边距默认.zero。在可视化面板里内边距被拆成topTextInsets、bottomTextInsets、leftTextInsets、rightTextInsets四个滑杆比在代码里写UIEdgeInsets直观得多。选中外观selectionAttributes 与 isSelectionEnabled这是 SelectableTextView 最有辨识度的部分——被注册为“可选中”的文字会以高亮样式呈现selectionAttributes自定义选中时的字体、颜色等属性类型为[NSAttributedStringKey: AnyObject]?默认nil。当它为nil时控件会回退到默认选中样式前景色 控件 tintColor、加粗且字号 2pt。isSelectionEnabled是否允许触发选择默认true设为false可整体禁用点击选中。想要“选中变紫 加下划线”这类效果只需给selectionAttributes传入对应的NSAttributedStringKey字典即可无需重写布局。滚动与展开isScrollEnabled、isExpanded 与两个 delegateisScrollEnabled是否开启滚动默认false打开后可通过scrollDelegate转发滚动事件。isExpanded跟踪“展开按钮”的状态默认nil只有添加了展开按钮后才有效赋值可切换展开 / 收起。delegate主代理负责解决多个验证器冲突、是否带动画展开等决策。scrollDelegate滚动代理接收滚动、拖拽、减速等事件。配合framesOfWordsMatchingValidator方法还能拿到任意选中词在视图内的相对坐标常用于做星光、划线等装饰动效。只读属性textContentSizetextContentSize是只读属性返回文本内容的实际尺寸CGSize。它常配合代理回调selectableTextViewContentHeightDidChange使用在内容高度变化时同步刷新外层布局是自适应卡片、聊天气泡的关键。Interface Builder 可视化属性配置因为类被标记为IBDesignable大部分属性可以直接在 Xcode 属性面板里拖拽调参下面这张图展示了 SelectableTextView 的可视化属性面板能直观看到行数、颜色、行距、内边距等可配置项面板可直接编辑的属性包括numberOfLines、text、textColor、lineSpacing、isSelectionEnabled、isScrollEnabled、fontSize、trucateTail以及四个方向的textInsets。使用小结掌握这 17 个属性就掌握了 SelectableTextView 的全部外观与交互开关调内容text/attributedText调样式font、textColor、lineSpacing、textContainerInsets调排版textAlignment、numberOfLines、lineBreakMode、truncationMode调交互selectionAttributes、isSelectionEnabled、isScrollEnabled、isExpanded调通信delegate、scrollDelegate读尺寸textContentSize从纯代码属性到 Interface Builder 面板SelectableViewTextView 让你无需深入布局细节就能快速搭出一个支持选择与展开的现代化文本视图。【免费下载链接】SelectableTextViewA text view that supports selection and expansion项目地址: https://gitcode.com/gh_mirrors/se/SelectableTextView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表