[英]How to remove UITextView right-hand-side padding in iOS 6?
我正在使用UITextView
进行文本编辑。 我希望UITextView
的编辑区域与UILabel
相同。 我使用UIEdgeInsetsMake(-4,-8,0,-8)
方法,它有一点帮助,它删除了左侧的填充和顶部的填充,但右侧的填充仍然存在。
有没有办法在iOS 6中删除UITextView
的正确填充?
如果您仅定位到iOS6,则可以使用 contentInset
这样 提供最高和最低边距 ,
textView.contentInset = UIEdgeInsetsMake(20.0, 0.0, 20.0, 0.0);
对于左边距和右边距,请不要立即添加纯文本,而应使用NSAttributedString并通过NSMutableParagraphStyle正确设置左右缩进:
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.headIndent = 20.0;
paragraphStyle.firstLineHeadIndent = 20.0;
paragraphStyle.tailIndent = -20.0;
NSDictionary *attrsDictionary = @{NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue" size:12.0], NSParagraphStyleAttributeName: paragraphStyle};
textView.attributedText = [[NSAttributedString alloc] initWithString:@"SomeText...." attributes:attrsDictionary];
如果您还支持iOS7,请使用 textContainerInset
textView.textContainerInset = UIEdgeInsetsMake(0, 20.0, 0, 20.0)
记住,您需要使用respondToSelector
进行检查以确保textContainerInset
可用性。
UITextView具有一个名为textContainerInset的属性。 此插图的默认值为(顶部= 8,左侧= 0,底部= 8,右侧= 0)。 因此,将此插入设置为UIEdgeInsetsZero应该摆脱顶部和底部的填充。
textView.textContainerInset = UIEdgeInsetsMake(20.0,0.0,20.0,0.0)
但是在文本的左侧和右侧仍然有一些填充。 消除该问题的解决方案并不像将插图设置为零那么明显。 UITextView使用NSTextContainer对象定义显示文本的区域。 这个NSTextContainer对象具有一个名为lineFragmentPadding的属性。 此属性定义在线段矩形内插入文本的数量,即换句话说:文本的左侧和右侧填充。 默认值为5.0,因此将其设置为0将删除填充。
textView.textContainer.lineFragmentPadding = 0;
链接: http : //www.pixeldock.com/blog/how-to-get-rid-of-the-padding-insets-in-an-uitextview/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.