Подтвердить что ты не робот

Как установить границу UITextView так же, как цвет границы UITextField

По умолчанию UITextField имеет светло-серый цвет в качестве цвета границы. Я хочу настроить UITextView на тот же цвет границы, что и UITextField.

Я пробовал:

myTextView.layer.borderColor = UIColor.lightGrayColor().CGColor
or
myTextView.layer.borderColor = UIColor.lightTextColor().CGColor
or 
myTextView.layer.borderColor = myTextField.layer.borderColor

У них все еще есть разные цвета. Не могли бы вы рассказать мне, как увидеть границу UITextView в соответствии с цветом UITextField?

Спасибо.

4b9b3361

Ответ 1

Попробуйте этот код.

UIColor *borderColor = [UIColor colorWithRed:204.0/255.0 green:204.0/255.0 blue:204.0/255.0 alpha:1.0];

myTextView.layer.borderColor = borderColor.CGColor;
myTextView.layer.borderWidth = 1.0;
myTextView.layer.cornerRadius = 5.0;

измените значение borderWidth и cornerRadius, чтобы получить точный ui как UITextField.

Ответ 2

Этот код Swift также работает для установки того же цвета границы, ширины и радиуса как UITextField:

myTextView.layer.borderColor = UIColor(red: 0.9, green: 0.9, blue: 0.9, alpha: 1.0).CGColor
myTextView.layer.borderWidth = 1.0
myTextView.layer.cornerRadius = 5

Ответ 3

У меня был такой же вопрос для iOS 10, и я не смог найти ответ, но это то, что я нашел с помощью Digital Color Meter в Utilities и iOS Simulator.

Swift 3/iOS 10

let color = UIColor(red: 186/255, green: 186/255, blue: 186/255, alpha: 1.0).cgColor
myTextView.layer.borderColor = color
myTextView.layer.borderWidth = 0.5
myTextView.layer.cornerRadius = 5

Ответ 4

swift 4.x/ios11.

Я сделал еще одну меру в PSD, используя симулятор. Я могу подтвердить, что радиус равен 0,5, а цвет равен 0,8, а 205/255 = 0,8 (или "cdcdcd" в HEX, как предполагает PSD, НО ширина должна быть 0,5. (Я подключил PSD, где вы можете сравнить радиус поля редактирования (UITExtField ) И радиус, примененный к UITextView.

Итак, это правильно:

    let borderGray = UIColor(red: 0.8, green: 0.8, blue: 0.8, alpha: 1)
    self.TxtV.layer.borderColor = borderGray.cgColor
    self.TxtV.layer.borderWidth = 0.5
    self.TxtV.layer.cornerRadius = 5

Примечание. Я попытался получить цвет из TextField уже в представлении, но я получил:

если пусть borderGray = self.cellPhoneTxt.layer.borderColor {let BG = UIColor (cgColor: borderGray)

    print(BG)
    var red: CGFloat = 0
    var green: CGFloat = 0
    var blue: CGFloat = 0
    var alpha: CGFloat = 0
    BG.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
    print(red, green, blue, alpha)

}

но я попал в консоль:

kCGColorSpaceModelRGB 0 0 0 1

0,0 0,0 0,0 1,0

поэтому кажется, что Apple использует полный черный цвет и немного Alpha.

enter image description here

Ответ 5

Попробуйте этот код для Swift

let borderColor = UIColor.whiteColor.Cgcolor()

myTextView.layer.borderColor = borderColor.CGColor;
myTextView.layer.borderWidth = 1.0;
myTextView.layer.cornerRadius = 5.0;

Ответ 6

Точный цвет:

Objective-C:

[UIColor colorWithRed:0.76 green:0.76 blue:0.76 alpha:1.0].CGColor;

Swift:

UIColor(red:0.76, green:0.76, blue:0.76, alpha:1.0).CGColor

Ответ 7

Для общего решения через проект. Вы можете использовать класс UIView extern и добавлять к нему эти методы.

-(void)setBorderColor:(UIColor *)borderColor{
    self.layer.borderColor = (borderColor).CGColor;
}
-(UIColor*)borderColor{
    return [UIColor colorWithCGColor: self.layer.borderColor];
}

//Getter and setter for border width
-(void)setBorderWidth:(NSInteger)borderWidth{
    self.layer.borderWidth = borderWidth;
}
-(NSInteger)borderWidth{
    return  (NSInteger)roundf((self.layer.borderWidth));
}

Его расширение для UIView. Просто добавьте эти файлы UIView + Designable.h/m в свой проект, и вы увидите несколько дополнительных параметров в инспекторе атрибутов.