边界UITextView

我想要在UITextView周围有一个薄的灰色边框。 我已经通过苹果文档,但无法find任何财产。 请帮忙。

 #import <QuartzCore/QuartzCore.h> .... // typically inside of the -(void) viewDidLoad method self.yourUITextView.layer.borderWidth = 5.0f; self.yourUITextView.layer.borderColor = [[UIColor grayColor] CGColor]; 

添加以下圆angular:

 self.yourUITextview.layer.cornerRadius = 8; 

伟大的作品,但颜色应该是CGColor ,而不是UIColor

 view.layer.borderWidth = 5.0f; view.layer.borderColor = [[UIColor grayColor] CGColor]; 

我添加UIImageView作为UITextView的子视图。 这匹配UITextField上的原生边界,包括从上到下的渐变:

在这里输入图像说明

 textView.backgroundColor = [UIColor clearColor]; UIImageView *borderView = [[UIImageView alloc] initWithFrame: CGRectMake(0, 0, textView.frame.size.width, textView.frame.size.height)]; borderView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; UIImage *textFieldImage = [[UIImage imageNamed:@"TextField.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(15, 8, 15, 8)]; borderView.image = textFieldImage; [textField addSubview: borderView]; [textField sendSubviewToBack: borderView]; 

这些是我使用的PNG图像,和一个JPG表示forms:

@ 1X

@ 2倍

在这里输入图像说明

这里是我使用的代码,添加一个名为“tbComments”的TextView控件的边框:

 self.tbComments.layer.borderColor = [[UIColor grayColor] CGColor]; self.tbComments.layer.borderWidth = 1.0; self.tbComments.layer.cornerRadius = 8; 

以下是它的样子:

在这里输入图像说明

十分简单。

对于Swift编程,使用这个

 tv_comment.layer.borderWidth = 2 tv_comment.layer.borderColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1).CGColor 

这跟原来的UITextField尽可能地接近

 func updateBodyTextViewUI() { let borderColor = UIColor.init(red: 212/255, green: 212/255, blue: 212/255, alpha: 0.5) self.bodyTextView.layer.borderColor = borderColor.CGColor self.bodyTextView.layer.borderWidth = 0.8 self.bodyTextView.layer.cornerRadius = 5 } 

从iOS 8和Xcode 6开始,我现在发现最好的解决scheme是inheritanceUITextView,并将子类标记为IB_DESIGNABLE,这将允许您在故事板中查看边框。

标题:

 #import <UIKit/UIKit.h> IB_DESIGNABLE @interface BorderTextView : UITextView @end 

执行:

 #import "BorderTextView.h" @implementation BorderTextView - (void)drawRect:(CGRect)rect { self.layer.borderWidth = 1.0; self.layer.borderColor = [UIColor blackColor].CGColor; self.layer.cornerRadius = 5.0f; } @end 

然后,只需拖出故事板中的UITextView,并将其类设置为BorderTextView

使它工作的东西(除了这里的答案之外)是添加borderStyle属性:

 #import <QuartzCore/QuartzCore.h> .. phoneTextField.layer.borderWidth = 1.0f; phoneTextField.layer.borderColor = [[UIColor blueColor] CGColor]; phoneTextField.borderStyle = UITextBorderStyleNone; 

只是一个小的补充。 如果将边框放大一些,会影响文本的左侧和右侧。 为了避免这一点,我添加了以下行:

 self.someTextView.textContainerInset = UIEdgeInsetsMake(8.0, 8.0, 8.0, 8.0); 

我在故事板中解决了这个问题,把一个完全禁用的UIButton放在UITextView背后,并使UITextView的背景颜色为clearColor。 这工作无需额外的代码或包。