iOS:如何将相同的样式应用于另一个UITextField?

时间:2014-08-14 09:35:41

标签: ios uitextfield

任何人都可以帮助我,是否可以将相同的样式(边框颜色,边框宽度,圆角半径)从UITextField1应用到UITextField2。

详细信息, 我已将上述样式应用于"密码"领域。我希望应用相同的样式来确认密码,电子邮件,国家/地区等字段。

[[self.passwordField layer] setBorderColor:[[UIColor darkGrayColor] CGColor]];
[[self.passwordField layer] setBorderWidth:0.9];
[[self.passwordField layer] setCornerRadius:5];

如果有任何简单的方法可以通过避免代码重复代码行来指导我吗? 提前谢谢!

4 个答案:

答案 0 :(得分:3)

试试这个:

-(void)setTextFieldProperty:(UITextField *)myTextField{
    [[myTextField layer] setBorderColor:[[UIColor darkGrayColor] CGColor]];
    [[myTextField layer] setBorderWidth:0.9];
    [[myTextField layer] setCornerRadius:5];
}

只需通过以下方式调用此方法:

[self setTextFieldProperty:mytestField]

它将完成其余的工作。希望这有助于.. :))

答案 1 :(得分:2)

创建视图集合,然后遍历集合,根据需要设置图层属性。 E.g:

NSArray *myTextFields = @[self.passwordField, self.emailField, self.countryField];
for (UIView *view in myTextFields){
    [[view layer] setBorderColor:[[UIColor darkGrayColor] CGColor]];
    [[view layer] setBorderWidth:0.9];
    [[view layer] setCornerRadius:5];
}

答案 2 :(得分:1)

您可以在UITextField上创建一个类别:

- (void) isPasswordField
{
    [[self layer] setBorderColor:[[UIColor darkGrayColor] CGColor]];
    [[self layer] setBorderWidth:0.9];
    [[self layer] setCornerRadius:5];
}

并称之为:

[self.passwordField isPasswordField];

答案 3 :(得分:1)

试试这个。查看添加了所有UITextField的视图。确保这会影响视图的所有文本字段。你不需要传递任何文本字段。

for (UITextField *txtFld in self.view.subviews)// set your textfield superview
{
    if ([txtFld isKindOfClass:[UITextField class]])
    {
        [[txtFld layer] setBorderColor:[[UIColor darkGrayColor] CGColor]];
        [[txtFld layer] setBorderWidth:0.9];
        [[txtFld layer] setCornerRadius:5];
    }
}

也许这会对你有帮助。