| nc-blog 首页 → 农码生涯 | 
									
										| NSTextView 文本的行高 | 
									
										| 日期: 2020-06-13, 15:16   共 4,337 次阅读 | 
									
										| 
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 | 
									
										|  |