将“填充”添加到UITextView
正如标题所说,我正在尝试向UITextView添加类似于填充的行为。 当视图在我的导航控制器中被推入并且出现以下代码时,生成textview:
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的所有四边添加一些填充,我已经无法做到这一点与3小时的search似乎相当容易的东西。 有什么build议么?
编辑1/16/2015:这是写在2012年,不再准确。 如上所述使用-textContainerInset。
原文:
使用contentInset实际上不会工作。 你有两个合理的select:子类UITextField和重写textRectForBounds:和editingRectForBounds:方法或创build您的文本字段透明的UIView和风格的UIView。
子类化UITextField的例子:
- (CGRect)textRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 5, 5); } - (CGRect)editingRectForBounds:(CGRect)bounds { return CGRectInset(bounds, 5, 5); }
将其包装在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;
使用iOS7我已经完成了
[self.textView setTextContainerInset:UIEdgeInsetsMake(0, 12, 0, 12)];
希望这有助于,马里奥
这个答案是完全错误的。 正确答案很简单:
uitextview.textContainerInset = UIEdgeInsetsMake(8,5,8,5); // top, left, bottom, right
(这些值通常与相同屏幕上的UITextField的外观相匹配。)
使用这个:
self.textView.contentInset = UIEdgeInsetsMake(5, 5, 5, 5);
这对我使用SWIFT 2.0:
textView.textContainerInset = UIEdgeInsetsMake(10, 10, 10, 10)
对于Swift 3来说,答案似乎相似,但略有不同:
textview.contentEdgeInsets = UIEdgeInsets(top: 2, left: 10, bottom: 2, right: 10)
(其实,我用上面的UIButtonView,但是因为它是如此封闭的UITextView张贴的答案,我想[希望]它也适用于此)