Answers:
#import <QuartzCore/QuartzCore.h>
....
// typically inside of the -(void) viewDidLoad method
self.yourUITextView.layer.borderWidth = 5.0f;
self.yourUITextView.layer.borderColor = [[UIColor grayColor] CGColor];
self.myView.layer.borderWidth ...
,但是正如我所说的,图层是只读的,因此图层没有任何要设置的方法或变量
我将添加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表示形式:
code
resizableImageWithCapInsets:UIEdgeInsetsMake(
效果很好,但是颜色应该是CGColor
,而不是UIColor
:
view.layer.borderWidth = 5.0f;
view.layer.borderColor = [[UIColor grayColor] CGColor];
我相信以上答案适用于Swift的早期版本。我用Google搜索了一下,下面的代码适用于Swift 4。
self.textViewName.layer.borderColor = UIColor.lightGray.cgColor
self.textViewName.layer.borderWidth = 1.0
self.textViewName.layer.cornerRadius = 8
编码愉快!
self.textViewName.layer.borderColor = UIColor.systemGray4.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开始,我现在发现最好的解决方案是对UITextView进行子类化并将该子类标记为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
我在情节提要中解决了此问题,方法是在UIButton
后面放置一个完全禁用的选项,UITextView
并设置UITextView
clearColor 的背景色。这不需要额外的代码或程序包。