nc-blog 首页 → 农码生涯 |
NSTextView 文本的行高 |
日期: 2020-06-13, 15:16 共 3,809 次阅读 |
- LineHeight:简单地使用 NSParagraphStyle 的 lineHeightMultiple 的情况下,当设置其值为大于 1.0 的时候,文字占据整个增加了行间距的空间的底部,如图:
- LineSpacing:使用 NSParagraphStyle 的 lineSpacing 的情况下,当设置其值为大于 0 的时候,文字占据整个增加了行间距的空间的顶部,如图:
- BaselineOffset:给 NSAttributedString 增加 NSBaselineOffsetAttributeName 属性,可以使得文字向上或者向下偏移,但同时也会与 LineHeight/LineSpacing 叠加,改变整行的高度。
- 实践后的正确方式:将 LineSpacing 与 BaselineOffset 结合。
算法很简单:
- 算出目标行高 target_height;
- 算出原始行高(1.0 倍 LineHeight,0 LineSpacing) original_height;
- 将 target_height 与 original_height 的差值除以 2 后,赋值给 LineSpacing 与 BaselineOffset,也就是将差值一半给 LineSpacing,一半给 BaselineOffset。
效果如图:
|
简短地址:http://ncblog.net/1794/
|
|
« 共青森林公园 |
行百里半九十 » |
|
|
|
Trackback url | Rss 2.0 |
|