字段边框颜色

我真的很想设置我自己的颜色 UITextField 边界。但到目前为止,我可以找到如何改变边框线样式只。

我用背景属性来设置背景颜色:

self.textField.backgroundColor = textFieldColor;

但是我也必须改变 UITextField 边框的颜色。我的问题是如何改变边框颜色。

157029 次浏览

试试这个:

UITextField *theTextFiels=[[UITextField alloc]initWithFrame:CGRectMake(40, 40, 150, 30)];
theTextFiels.borderStyle=UITextBorderStyleNone;
theTextFiels.layer.cornerRadius=8.0f;
theTextFiels.layer.masksToBounds=YES;
theTextFiels.backgroundColor=[UIColor redColor];
theTextFiels.layer.borderColor=[[UIColor blackColor]CGColor];
theTextFiels.layer.borderWidth= 1.0f;


[self.view addSubview:theTextFiels];
[theTextFiels release];

进口 QuartzCore:

#import <QuartzCore/QuartzCore.h>

在类中导入 QuartzCore框架:

#import <QuartzCore/QuartzCore.h>

为了更改边框颜色,请使用下面的代码片段(我将其设置为 redColor) ,

    textField.layer.cornerRadius=8.0f;
textField.layer.masksToBounds=YES;
textField.layer.borderColor=[[UIColor redColor]CGColor];
textField.layer.borderWidth= 1.0f;

为了恢复到原来的布局,只需将边框颜色设置为清晰颜色,

    serverField.layer.borderColor=[[UIColor clearColor]CGColor];

用迅捷的代码

    textField.layer.borderWidth = 1
textField.layer.borderColor = UIColor.whiteColor().CGColor

导入以下类:

#import <QuartzCore/QuartzCore.h>

//设置文本字段边框的灰色的代码

[[textField layer] setBorderColor:[[UIColor colorWithRed:171.0/255.0
green:171.0/255.0
blue:171.0/255.0
alpha:1.0] CGColor]];

根据需要用相应的颜色号码替换 171.0

为了从已接受的答案中简化这个操作,您还可以为 UIView创建 分类(因为这适用于 UIView 的所有子类,不仅适用于文本字段:

UIView + Additions.h:

#import <Foundation/Foundation.h>


@interface UIView (Additions)
- (void)setBorderForColor:(UIColor *)color
width:(float)width
radius:(float)radius;
@end

UIView + Additions.m:

#import "UIView+Additions.h"


@implementation UIView (Additions)


- (void)setBorderForColor:(UIColor *)color
width:(float)width
radius:(float)radius
{
self.layer.cornerRadius = radius;
self.layer.masksToBounds = YES;
self.layer.borderColor = [color CGColor];
self.layer.borderWidth = width;
}


@end

用法:

#import "UIView+Additions.h"
//...
[textField setBorderForColor:[UIColor redColor]
width:1.0f
radius:8.0f];

这个问题在谷歌搜索中出现的频率很高,而且在大多数情况下都很有效!我确实发现 Salman Zaidi 的答案在 iOS7中是部分正确的。

您需要对“恢复”代码进行修改。我发现以下恢复代码非常有效:

textField.layer.cornerRadius = 0.0f;
textField.layer.masksToBounds = YES;
textField.layer.borderColor = [[UIColor blackColor] CGColor];
textField.layer.borderWidth = 0.0f;

我知道这很可能是由于 iOS7的变化。

任何视图(或 UIView 子类)上的 borderColor 也可以使用情节串连图板进行设置,只需要一点编码,如果您在多个 UI 对象上设置边框颜色,这种方法非常方便。

下面是如何实现它的步骤,

  1. 在 CALayer 类上创建一个类别。声明一个具有适当名称的 UIColor类型的属性,我将它命名为 BorderUIColor
  2. 为此属性编写 setter 和 getter。
  3. 在“ Setter”方法中,只需将图层的“ borderColor”属性设置为新颜色 CGColor 值。
  4. 在‘ Getter’方法中,返回带有图层 borderColor 的 UIColor。

附注: 记住,类别不能存储属性。“ borderUIColor”用作计算属性,只是作为实现我们所关注的内容的参考。

请看下面的代码示例;

目标丙:

接口文件:

#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>


@interface CALayer (BorderProperties)


// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;


@end

实施文件:

#import "CALayer+BorderProperties.h"


@implementation CALayer (BorderProperties)


- (void)setBorderUIColor:(UIColor *)color {
self.borderColor = color.CGColor;
}


- (UIColor *)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}


@end

Swift 2.0:

extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.CGColor
}


get {
return UIColor(CGColor: self.borderColor!)
}
}
}

最后进入故事板/XIB,按照其余步骤操作;

  1. 单击要为其设置边框颜色的 View 对象。
  2. 点击“实用工具”(屏幕右侧)面板中的“身份检查器”(左起第3个)。
  3. 在“用户定义的运行时属性”下,单击“ +”按钮添加键路径。
  4. 将键路径的类型设置为“ Color”。
  5. 输入键路径的值“ layer.borderUIColor”。[记住这应该是你在类别中声明的 变量名,而不是 边界颜色,这里是 BorderUIColor]。
  6. 终于选好了你想要的颜色。

您必须将 图层,边界宽度属性值设置为至少1以查看边框颜色。

构建和运行。 快乐编码:)

如果您使用圆角的 TextField,请使用以下代码:

    self.TextField.layer.cornerRadius=8.0f;
self.TextField.layer.masksToBounds=YES;
self.TextField.layer.borderColor=[[UIColor redColor]CGColor];
self.TextField.layer.borderWidth= 1.0f;

移除边框:

self.TextField.layer.masksToBounds=NO;
self.TextField.layer.borderColor=[[UIColor clearColor]CGColor];

迅捷5.0更新

textField.layer.masksToBounds = true
textField.layer.borderColor = UIColor.blue.cgColor
textField.layer.borderWidth = 1.0
extension UIView {
func addBorder(_ width: CGFloat = 1, color: UIColor = .black, cornerRadius: CGFloat = 4) {
layer.borderWidth = width
layer.borderColor = color.cgColor
layer.cornerRadius = cornerRadius
}
}

可以这么说: email.addBorder(1.0, color: .blue, cornerRadius: 5).