我有一个大小为360X44的背景图片,我试图将其作为我的UITextFields的背景,但它显示出一个意外的行为。光标在图像开始之前出现,但文本写在写入位置。
我的UiTextField的实施
UITextField *textFieldRounded = [[UITextField alloc] initWithFrame:CGRectMake(100, 75, 215, 30)];
textFieldRounded.borderStyle = UITextBorderStyleNone;
UIImage *fieldBGImage = [[UIImage imageNamed:@"textfield_normal.png"] stretchableImageWithLeftCapWidth:50 topCapHeight:50];
[textFieldRounded setBackground:fieldBGImage];
textFieldRounded.textColor = [UIColor blackColor];
textFieldRounded.font = [UIFont systemFontOfSize:17.0];
textFieldRounded.placeholder = @"http://"; //place holder
textFieldRounded.backgroundColor = [UIColor whiteColor];
textFieldRounded.autocorrectionType = UITextAutocorrectionTypeNo;
textFieldRounded.backgroundColor = [UIColor clearColor];
textFieldRounded.keyboardType = UIKeyboardTypeDefault;
textFieldRounded.returnKeyType = UIReturnKeyDone;
textFieldRounded.clearsOnBeginEditing = NO;
textFieldRounded.clearButtonMode = UITextFieldViewModeWhileEditing;
[self.view addSubview:textFieldRounded];
textFieldRounded.delegate = self;
答案 0 :(得分:4)
我只是将文字字段背景图像设置为我的波纹管代码并且工作良好: -
[YourTextFiled setFont:[UIFont systemFontOfSize:18]];
YourTextFiled.textAlignment = UITextAlignmentLeft;
YourTextFiled.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 12, 20)];
YourTextFiled.leftViewMode = UITextFieldViewModeAlways;
YourTextFiled.background = [[UIImage imageNamed:@"xFOEr.png"] stretchableImageWithLeftCapWidth:7 topCapHeight:17];
看起来像“ -
答案 1 :(得分:0)
我建议不要添加图片作为背景颜色。将其添加为其他组件。即首先添加UIImageView
,然后在其上添加UITextField
。
同时尝试在当前代码中进行此更改:
UITextField *textFieldRounded = [[UITextField alloc] initWithFrame:CGRectMake(100, 75, 360, 44)];
答案 2 :(得分:0)
UITextView *textView = [[UITextView alloc]initWithFrame: window.frame];
textView.text = @"text\n text\n text";
UIImageView *imgView = [[UIImageView alloc]initWithFrame: textView.frame];
imgView.image = [UIImage imageNamed: @"myImage.jpg"];
[textView addSubview: imgView];
[textView sendSubviewToBack: imgView];
[window addSubview: textView];
不要使用背景属性。将图像添加为子视图并将子视图发送回。