web-dev-qa-db-ja.com

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

彼らはまだ異なる色を持っています。 UITextFieldの色に合わせてUITextViewの境界線を表示する方法を教えてください。

ありがとうございました。

39
n179911

このコードを試してください。

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の値を変更して、UITextFieldとして正確なUIを取得します。

60
Deepak

この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
28
Aks

IOS 10についても同様の質問があり、答えを見つけることができませんでしたが、ユーティリティとiOSシミュレーターのデジタルカラーメーターを使用して見つけたものです。

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
14
Jason Brady

Swift 4.x/ios11。

シミュレータを使用してPSDで別の測定を行いました。 205/255 = 0.8のように半径が0.5で、色が0.8であることを確認できます(PSDが示唆するように、HEXでは「cdcdcd」ですが、BUTの幅は0.5。(編集フィールドの半径(UITExtField)とUITextViewに適用される半径を比較できるPSDを添付しました。

正しい:

    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から色を取得しようとしましたが、次のようになりました:

let let 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は完全な黒といくつかのアルファを使用しています。

enter image description here

6
ingconti

Swiftでこのコードを試してください

let borderColor = UIColor.whiteColor.Cgcolor()

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

正確な色は次のとおりです。

Objective-C:

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

迅速:

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

プロジェクト全体の一般的なソリューション。 UIViewクラスを外部化し、これらのメソッドを追加できます。

-(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));
}

Its UIViewの拡張機能。これらのUIView + Designable.h/mファイルをプロジェクトに追加するだけで、属性インスペクターに複数のオプションが表示されます。

0
Mubeen Qazi