回答:
#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 ...
、
丸みを帯びた角のために以下を追加します:
self.yourUITextview.layer.cornerRadius = 8;
の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(
上記の回答は以前のバージョンのSwiftに対するものだと思います。私は少しグーグル化し、以下のコードは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
Swiftプログラミングの場合、これを使用してください
tv_comment.layer.borderWidth = 2
tv_comment.layer.borderColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1).CGColor
UIColor(white: 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の時点で、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の背景色を作成することで解決しました。これは、追加のコードやパッケージを必要とせずに機能します。