How to set the border of UITextView to same as border color of UITextField

前端 未结 8 2029
遇见更好的自我
遇见更好的自我 2020-12-24 10:37

By default UITextField has a light gray color as its border color. I want to set my UITextView to have the same border color as the UITextField.

I tried:

<         


        
相关标签:
8条回答
  • 2020-12-24 11:09

    I had this similar question for iOS 10, and wasn't able to find an answer, but this is what I found using the Digital Color Meter in Utilities and the 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
    
    0 讨论(0)
  • 2020-12-24 11:09

    For generic solution through out the project. You can extern UIView class and add these methods to it.

    -(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 an extension to UIView. Just add these UIView+Designable.h/m files in your project and you can see the multiple more options in attribute inspector.

    0 讨论(0)
  • 2020-12-24 11:12

    Try this code.

    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;
    

    change borderWidth and cornerRadius value to get exact ui as UITextField.

    0 讨论(0)
  • 2020-12-24 11:13

    Try this code for Swift

    let borderColor = UIColor.whiteColor.Cgcolor()
    
    myTextView.layer.borderColor = borderColor.CGColor;
    myTextView.layer.borderWidth = 1.0;
    myTextView.layer.cornerRadius = 5.0;
    
    0 讨论(0)
  • 2020-12-24 11:17

    This Swift code also works for setting same border color, width & radius as 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
    
    0 讨论(0)
  • 2020-12-24 11:17

    swift 4.x/ios11.

    I did another measure in PSD using simulator. I can confirm radius is 0.5 and color is 0.8, as 205/255 = 0.8 (or "cdcdcd" in HEX, as PSD suggests, BUT width must be 0.5. (I attached a PSD where You can compare radius of edit field (UITExtField) AND radius applied to a UITextView.

    So its correct:

        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
    

    Note: I tried to get color from a TextField already on View, but I got:

    if 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)
    
    }
    

    but I got in console:

    kCGColorSpaceModelRGB 0 0 0 1

    0.0 0.0 0.0 1.0

    so it seems Apple is using full black AND some Alpha.

    0 讨论(0)
提交回复
热议问题