Bordered UITextView

Я хочу иметь тонкую серая рамка вокруг UITextView. Я просмотрел документацию Apple, но не смог найти там никакой собственности. Пожалуйста, помогите.

Ответ 1

#import <QuartzCore/QuartzCore.h>

....

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

Ответ 2

Добавьте следующие закругленные углы:

self.yourUITextview.layer.cornerRadius = 8; 

Ответ 3

Вот код, который я использовал, чтобы добавить границу вокруг моего элемента управления TextView с именем "tbComments":

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

И вот как это выглядит:

enter image description here

Легкий peasy.

Ответ 4

Я добавляю UIImageView как подпункт UITextView. Это соответствует внутренней границе на UITextField, включая градиент сверху вниз:

enter image description here

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:

@1x

@2x

enter image description here

Ответ 5

Отлично работает, но цвет должен быть CGColor, а не UIColor:

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

Ответ 6

для Swift Programming, используйте этот

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

Ответ 7

это как можно ближе к исходному 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
}

Ответ 8

Как и в 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

Ответ 9

То, что заставило его работать (в дополнение к следующим ответам здесь) добавляет атрибут borderStyle:

#import <QuartzCore/QuartzCore.h>
..

phoneTextField.layer.borderWidth = 1.0f;
phoneTextField.layer.borderColor = [[UIColor blueColor] CGColor];
phoneTextField.borderStyle = UITextBorderStyleNone;

Ответ 10

Просто небольшое дополнение. Если вы сделаете границу немного шире, это будет мешать левой и правой части текста. Чтобы этого избежать, я добавил следующую строку:

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

Ответ 11

В Swift 3 вы можете использовать следующие две строки:

myText.layer.borderColor = UIColor.lightGray.cgColor

myText.layer.borderWidth = 1.0

Ответ 12

Я полагаю, что приведенные выше ответы относятся к предыдущим версиям Swift. Я немного погуглил, и приведенный ниже код работает для Swift 4. Просто делюсь им с кем угодно.

self.textViewName.layer.borderColor = UIColor.lightGray.cgColor
self.textViewName.layer.borderWidth = 1.0;
self.textViewName.layer.cornerRadius = 8;

Удачного кодирования!

Ответ 13

Я решил эту проблему в раскадровке, полностью отключив UIButton позади UITextView и сделав цвет фона UITextView clearColor. Это работает, не требуя дополнительного кода или пакетов.