2013-11-14 3 views
2

Я создал UITextField из Interface Builder (IB). Поскольку я хотел индивидуального стиля, я выбрал стиль «Нет» в IB. На viewDidLoad, я задаю ему следующий стиль:Удалить тень из текста-заполнителя в UITextField в стиле CALayer

txtEmail.layer.cornerRadius = 8.0; 
txtEmail.layer.borderColor = [UIColor colorWithWhite:199.0/255.0 alpha:1].CGColor; 
txtEmail.layer.borderWidth = 1.0; 
txtEmail.layer.shadowColor = [UIColor blackColor].CGColor; 
txtEmail.layer.shadowOpacity = 0.17; 
txtEmail.layer.shadowOffset = CGSizeMake(-0.9,0.9); 
txtEmail.layer.shadowRadius = 1.1; 

// This is to provide a left padding for None styled textfields 
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)]; 
txtEmail.leftView = paddingView; 
txtEmail.leftViewMode = UITextFieldViewModeAlways; 

Теперь мой TextField становится совершенно стиль, но мой замещающий текст (приводится в IB) также унаследовать эту тень. Как я могу избавиться от этого?

ответ

0

Найти код ниже его работает нормально, вам нужно удалить shadowRadius

txtEmail.backgroundColor = [UIColor clearColor]; 
txtEmail.layer.cornerRadius = 8.0; 
txtEmail.layer.borderColor = [UIColor colorWithWhite:199.0/255.0 alpha:1].CGColor; 
txtEmail.layer.borderWidth = 1.0; 
txtEmail.layer.shadowColor = [UIColor blackColor].CGColor; 
txtEmail.layer.shadowOpacity = 0.17; 
txtEmail.layer.shadowOffset = CGSizeMake(-0.9,0.9); 
txtEmail.layer.masksToBounds = false; 

// This is to provide a left padding for None styled textfields 
UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 20)]; 
txtEmail.leftView = paddingView; 
txtEmail.leftViewMode = UITextFieldViewModeAlways; 
[self.view addSubview:txtEmail]; 

Image

Смежные вопросы