如何在不对每个小部件进行编码的情况下制作自己的 UITextField 样式
How make own style of UITextField without coding of each widget
我希望屏幕上的所有 TextField 元素都具有红色边框、一些阴影等。
对于一个 TextField,我可以在控制器代码中设置此参数。制作插座并设置所有参数。
但是如何在之前设置所有这些参数的情况下制作自己的文本字段,而不需要为每个文本字段手册实例设置它?
谢谢。
给你:
class MySuperDuperTextField: UITextField {
override func awakeFromNib() { // if you're not using Storyboards, you should override initWithFrame: or come up with your own init
// stylize here...
layer.borderColor = .redColor().CGColor // red border
}
}
处理阴影的方法有很多种,您最好查找并选择适合您的解决方案。
您也许应该创建一个扩展程序 class 并在其中放置您的每个不同的文本字段,它们将可以在您的任何地方重复使用 #import "UITextField+Extensions.h"
UITextField+扩展.h文件
@interface UIColor (SPQExtensions)
+(UITextField *)shadowTextFieldWithFrame:(CGRect)frame;
@end
UITextField+扩展.m文件
@implementation UITextField (Extensions)
+(UITextField *)shadowTextFieldWithFrame:(CGRect)frame
{
UITextField *textfield = [[UITextField alloc]initWithFrame:frame];
// rest of your setup code
return textfield;
}
@end
我希望屏幕上的所有 TextField 元素都具有红色边框、一些阴影等。 对于一个 TextField,我可以在控制器代码中设置此参数。制作插座并设置所有参数。 但是如何在之前设置所有这些参数的情况下制作自己的文本字段,而不需要为每个文本字段手册实例设置它?
谢谢。
给你:
class MySuperDuperTextField: UITextField {
override func awakeFromNib() { // if you're not using Storyboards, you should override initWithFrame: or come up with your own init
// stylize here...
layer.borderColor = .redColor().CGColor // red border
}
}
处理阴影的方法有很多种,您最好查找并选择适合您的解决方案。
您也许应该创建一个扩展程序 class 并在其中放置您的每个不同的文本字段,它们将可以在您的任何地方重复使用 #import "UITextField+Extensions.h"
UITextField+扩展.h文件
@interface UIColor (SPQExtensions)
+(UITextField *)shadowTextFieldWithFrame:(CGRect)frame;
@end
UITextField+扩展.m文件
@implementation UITextField (Extensions)
+(UITextField *)shadowTextFieldWithFrame:(CGRect)frame
{
UITextField *textfield = [[UITextField alloc]initWithFrame:frame];
// rest of your setup code
return textfield;
}
@end