kat*_*tit 16 storyboard uitextfield ios
如果可能的话,我想使用故事板设置边框颜色.我在这里看到了答案:UITextField边框颜色
然后我在故事板中回答:

设置了所有属性,但TextField不显示边框.有什么建议?
Mar*_*kus 13
正如Bogdan指出的那样,你可以通过简单的子类化和几位代码来做到这一点.之后,一切都将在Storyboards中编辑.
插图代码(Swift 3.1):
@IBDesignable
class FormTextField: UITextField {
@IBInspectable var borderColor: UIColor? {
didSet {
layer.borderColor = borderColor?.cgColor
}
}
@IBInspectable var borderWidth: CGFloat = 0 {
didSet {
layer.borderWidth = borderWidth
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:您将在属性检查器中看到这一点
正如Bogdan指出的那样,你无法在storyboard中找到layer.borderColor属性,因为它是一个运行时的东西.
但是你仍然可以在任何视图(或UIView Subclass)上使用IB_DESIGNABLE 设置borderColor并进行一些编码.
以下是如何实现它的步骤,
PS:请记住,类别不能存储属性.'borderUIColor'用作计算属性,作为实现我们所关注的内容的参考.
请看下面的代码示例;
目标C:
接口文件:
#import <QuartzCore/QuartzCore.h>
#import <UIKit/UIKit.h>
@interface CALayer (BorderProperties)
// This assigns a CGColor to borderColor.
@property (nonatomic, assign) UIColor* borderUIColor;
@end
Run Code Online (Sandbox Code Playgroud)
实施档案:
#import "CALayer+BorderProperties.h"
@implementation CALayer (BorderProperties)
- (void)setBorderUIColor:(UIColor *)color {
self.borderColor = color.CGColor;
}
- (UIColor *)borderUIColor {
return [UIColor colorWithCGColor:self.borderColor];
}
@end
Run Code Online (Sandbox Code Playgroud)
Swift 3.1:
extension CALayer {
var borderUIColor: UIColor {
set {
self.borderColor = newValue.cgColor
}
get {
return UIColor(cgColor: self.borderColor!)
}
}
}
Run Code Online (Sandbox Code Playgroud)
最后转到你的故事板/ XIB,按照剩下的步骤;
编辑:您必须将layer.borderWidth属性值设置为至少1才能看到边框颜色.
构建并运行.快乐的编码.:)
小智 3
我不确定您可以更改故事板中 UITextfield 的边框颜色。您可以通过以下方式以编程方式更改它:
UITextField *myTextField = (UITextField *)[self.view viewWithTag:1];
myTextField.borderStyle = UITextBorderStyleLine;
myTextField.layer.borderWidth = 2;
myTextField.layer.borderColor = [[UIColor redColor] CGColor];
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。