0

enter image description here

My problem is that I have created a textfield which has leftviewmode as an image and the placeholder is in somewhere middle of textfield where the text editing should get start when user starts typing. So how to get my text started from middle of textfield just where the placeholder is. I cannot set the leftviewmode in imageview because I already added image there. What should I do?

UIImageView *image = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"a_point30"]];
image.frame = CGRectMake(0, 0, image.image.size.width, image.image.size.height-10);
self.enterSource.leftViewMode = UITextFieldViewModeAlways; self.enterSource.leftView = image;

For example textediting should began from hello world placeholder.

2 Answers2

1

You can do something like this,

 UIImageView *imgView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:imgName]];
imgView.frame = CGRectMake(0.0, 0.0, dropDown.image.size.width+10.0, dropDown.image.size.height);
imgView.contentMode = UIViewContentModeLeft;
textField.leftView = imgView;
textField.leftViewMode = UITextFieldViewModeAlways;
Ketan Parmar
  • 27,092
  • 9
  • 50
  • 75
  • Thanks again..perfect.. but i am bit confused what happened in code? – vishwas parashar Apr 20 '16 at 08:12
  • There is nothing new. imageview's size is 10 px larger than image in width and content mode of imageview is left. so image always allign left so you will get 10 pixel blank space and after your text will display. – Ketan Parmar Apr 20 '16 at 08:18
0

In Swift 2.2.1, it will be something like this:

let imageView = UIImageView(image: UIImage(named: "ImageName"))
imageView.frame = CGRectMake(0.0, 0.0, imageView.image!.size.width + 10, imageView.image!.size.height)
imageView.contentMode = UIViewContentMode.Left
textField.leftView = imageView
textField.leftViewMode = UITextFieldViewMode.Always
Maverick
  • 3,209
  • 1
  • 34
  • 40