一、背景
最近一直在优化公司的电商app,发现商品详情的图文详情在textView上显示的时候,左边有空隙,如图1所示 图1.jpg,然后开启了我的研究之路。
二、处理html标签
在查询资料以及咨询我的前端好友后,我给后台返回的图片标签加了一个head标签
NSString *html = kFormat(@"<html><head><style>img{width:%f ; display:block !important;height:auto}body{margin: 0px;padding: 0px;}</style></head><body>%@</body></html>", kSCREEN_WIDTH,htmlStr);
其中有个坑:
<body>标签自带一个内间距,所以在<style>标签里面加个body{margin: 0px;padding: 0px;}
至此,我的这段html代码在webView上完美运行,左右均没有间距,如图2
但是
我使用textView显示这段html代码,左边还是有如图1一样的空隙,然后我开始着手研究textView。
三、textView的间距的坑
在我查询了不少博客以后,我终于找到了这个属性
self.textView.textContainer.lineFragmentPadding = 0;
self.textView.textContainerInset = UIEdgeInsetsZero;
lineFragmentPading:官方描述:
The amount by which text is inset within line fragment rectangles.
The padding appears at the beginning and end of the line fragment rectangles. The layout manager uses this value to determine the layout width. The default value of this property is 5.0.
Line fragment padding is not designed to express text margins. Instead, you should use insets on your text view, adjust the paragraph margin attributes, or change the position of the text view within its superview.
在设置了这2个属性以后,左边的间隙就没有了,如图3。
图3.jpg
四、结语
这两个属性算是比较冷门的属性吧,我翻了好多个博客才找到的,这个也是比较冷门的坑,写个简书记录一下。
网友评论