使用CALayer样式的UITextField中,如何从占位文本中去除阴影?

4

我从Interface Builder(IB)创建了一个UITextField。 由于我想要自定义样式,所以在IB中选择了无样式(None styling)。 在viewDidLoad中,我给它分配了以下样式:

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;

现在我的文本框已经得到完美的样式,但是我的占位符文本(在IB中提供)也继承了那个阴影。我该如何去掉它?
1个回答

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接