2014-10-01 102 views
0

的背景颜色,我创造了我所使用的用户registration.In注册页面的应用程序,我已经创造了许多UITextFields.I希望,当用户选择的任何文本字段那么它的背景图像的变化。我使用的代码是这样做的:更改所选文本字段

- (IBAction)touchBegin:(id)sender 
{ 
    //UILabel *opt = (UILabel *)[cell viewWithTag:101]; 
    if (_text1.isSelected) { 
     _text1.background = [UIImage imageNamed:@"big_star_non_rating.png"]; 
    } 
    else if (_text2.isSelected){ 
     _text2.background = [UIImage imageNamed:@"big_star_non_rating.png"]; 
    } 
    else if (_text3.isSelected){ 
     _text3.background = [UIImage imageNamed:@"big_star_non_rating.png"]; 
    } 
    else if (_text4.isSelected){ 
     _text4.background = [UIImage imageNamed:@"big_star_non_rating.png"]; 
    } 
    else{ 

    } 
} 

但我没有得到根据我的需要的结果。 我应该用什么来获得正确的输出?

+0

什么是您的文本字体样式?边框风格还是什么? – Maul 2014-10-01 10:01:31

回答

1

确保您的文本框的边框样式是否UITextBorderStyleNone。

yourTextField.borderStyle = UITextBorderStyleNone; 

yourTextField.background = [UIImage imageNamed:@"image.png"]; 
0

尝试这个

图像:

[_text1 setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]]; 

or 

_text1.background = [UIImage imageNamed:@"image.png"]; 

对于颜色:

[_text1 setBackgroundColor:[UIColor blackColor]]; 
0

我认为这是更好的和更容易使用UITextFieldDelegate方法是这样,例如:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    textField.background = [UIImage imageNamed:@"big_star_non_rating"]; 
    return YES; 
} 

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField 
{ 
    textField.background = [UIImage imageNamed:@"AnImageForNormalStateOrSetNilBackground"]; 
    return YES; 
} 

希望它有帮助。

+0

在我的代码中,if条件无法正常工作。我应该使用哪种If/switch条件来获得结果(当选择TextField时,其颜色不会改变其他颜色,我想知道正确的if/switch条件以获得输出结果 – 2014-10-01 10:52:08

+0

在这种方法中,您不需要将一个if /切换条件,在这个方法中接收到的'textfield'(UITextfield *)是正在编辑的文本字段。 – 2014-10-01 15:47:46