텍스트 작성기를 댓글 작성기로 사용하고 있습니다.
속성 관리자에서 테두리 스타일 속성과 같은 것을 찾을 수 없으므로 둥근 사각형을 사용할 수 있습니다 UITextField
.
그래서, 질문은 : 나는 스타일을 어떻게 UITextView
유사한을 UITextField
둥근 RECT로?
답변
선택할 암시 적 스타일은 없으며 QuartzCore
프레임 워크를 사용하여 약간의 코드를 작성해야합니다 .
//first, you
#import <QuartzCore/QuartzCore.h>
//.....
//Here I add a UITextView in code, it will work if it's added in IB too
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(50, 220, 200, 100)];
//To make the border look very close to a UITextField
[textView.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]];
[textView.layer setBorderWidth:2.0];
//The rounded corner part, where you specify your view's corner radius:
textView.layer.cornerRadius = 5;
textView.clipsToBounds = YES;
OS 3.0 이상에서만 작동하지만 이제는 사실상 플랫폼이라고 생각합니다.
답변
이 코드는 나를 위해 잘 작동했습니다.
[yourTextView.layer setBackgroundColor: [[UIColor whiteColor] CGColor]];
[yourTextView.layer setBorderColor: [[UIColor grayColor] CGColor]];
[yourTextView.layer setBorderWidth: 1.0];
[yourTextView.layer setCornerRadius:8.0f];
[yourTextView.layer setMasksToBounds:YES];
답변
스위프트 3 버전
인터페이스 빌더에서 텍스트보기를 설정 한 후
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textView.layer.cornerRadius = 5
textView.layer.borderColor = UIColor.gray.withAlphaComponent(0.5).cgColor
textView.layer.borderWidth = 0.5
textView.clipsToBounds = true
}
스위프트 2.2 버전
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
textView.layer.cornerRadius = 5
textView.layer.borderColor = UIColor.grayColor().colorWithAlphaComponent(0.5).CGColor
textView.layer.borderWidth = 0.5
textView.clipsToBounds = true
}
답변
편집 : 가져와야합니다
#import <QuartzCore/QuartzCore.h>
코너 반경을 사용합니다.
이것을 시도하십시오 그것은 확실히 작동합니다
UITextView* txtView = [[UITextView alloc] initWithFrame:CGRectMake(50, 50, 300, 100)];
txtView.layer.cornerRadius = 5.0;
txtView.clipsToBounds = YES;
Rob이 테두리 색상을 비슷하게 설정 UITextField
하려면 다음 줄을 추가하여 테두리 너비를 2.0으로 변경하고 색상을 회색으로 변경 해야하는 경우
[textView.layer setBorderColor:[[[UIColor grayColor] colorWithAlphaComponent:0.5] CGColor]];
[textView.layer setBorderWidth:2.0];
답변
나는 실제 거래를 원했기 때문에 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];
내가 사용하는 이미지는 다음과 같습니다.
답변
한 가지 해결책은 UITextView 아래에 UITextField 를 추가 하고 UITextView
배경을 투명하게 만들고에 대한 사용자 상호 작용을 비활성화하는 것 UITextField
입니다. 그런 다음 코드에서 UITextField
프레임을 다음과 같이 변경하십시오.
self.textField.frame = CGRectInset(self.textView.frame, 0, -2);
텍스트 필드와 모양이 정확히 같습니다.
Jon이 제안한 [UIViewController viewDidLayoutSubviews]
대로이 코드 조각 을 iOS 5.0 이상에 넣어야합니다 .
답변
최상의 효과를 얻으려면 사용자 정의 (신축 가능한) 배경 이미지를 사용해야합니다. 이것 UITextField
의 둥근 테두리가 그려지 는 방식이기도합니다 .