问题描述
正如标题所述,我正在尝试向UITextView添加类似填充的行为.当将视图推入我的导航控制器内部并发生以下代码时,将生成textview:
as the title says i am trying to add padding-like behavior to a UITextView. The textview is generated when the view is pushed inside my navigation controller and the following code occurs:
self.textView.layer.cornerRadius = 7;
//pretty stuff is pretty
NSString *description = appDelegate.productInDisplay.description;
[self.textView setText:description];
//pretty stuff has content now
CGRect frame = textView.frame;
frame.size.height = textView.contentSize.height;
textView.frame = frame;
//set the UITextView to the size of it's containing text.
self.textView.editable = NO;
self.theScrollView.contentSize = CGSizeMake(320, 250 + textView.frame.size.height);
//set the parent scrollView's height to fit some other elements with fixed size (250)
//and the pre-mentioned UITextView
所以,这一切都正常,没关系,但是我想在UITextView的所有4个侧面上添加一些填充,而我用3个小时的谷歌搜索就无法做到这一点,因为它看起来相当简单.有什么建议吗?
so, it all works and it's ok, but i want to add some padding on all 4 sides of the UITextView and i've been unable to do this with 3 hours of googling for something that seems rather easy. Any suggestions?
推荐答案
编辑1/16/2015:该版本写于2012年,不再准确.如上所述,使用-textContainerInset.
原始帖子:
使用contentInset实际上不起作用.您有两个合理的选择:子类化UITextField并重写textRectForBounds:和editRectForBounds:方法,或者在UIView上透明地创建文本字段并设置UIView的样式.
Using contentInset won't actually work. You have two reasonable choices: subclass UITextField and override the textRectForBounds: and editingRectForBounds: methods or create your text field transparently over a UIView and style the UIView.
子类化UITextField的示例:
Example of subclassing the UITextField:
- (CGRect)textRectForBounds:(CGRect)bounds {
return CGRectInset(bounds, 5, 5);
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
return CGRectInset(bounds, 5, 5);
}
将其包装在UIView中的示例:
Example of wrapping it in a UIView:
UIView *wrapView = [[UIView alloc] initWithFrame: CGRectMake(10, 10, 200, 30)];
[wrapView addSubview:textView];
wrapView.layer.borderColor = [UIColor darkGrayColor].CGColor;
wrapView.layer.borderWidth = 2.0;
wrapView.layer.cornerRadius = 5.0;
这篇关于添加&"padding&"到UITextView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!