边界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。 这工作无需额外的代码或包。