简体   繁体   中英

How to add space at start of UITextField

I am creating an app that contain multiple UITextField . In the textField i have sated border type to none and background image. It display fine, But now my text is started from the lest border which does not look good, like this

在此输入图像描述

How can i add space at the start of the textfield?

Try this

UILabel * leftView = [[UILabel alloc] initWithFrame:CGRectMake(10,0,7,26)];
leftView.backgroundColor = [UIColor clearColor];

textField.leftView = leftView;

textField.leftViewMode = UITextFieldViewModeAlways;
textField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;

Here's @Kalpesh's answer in Swift 3.x :

let leftView = UILabel(frame: CGRectMake(10, 0.0, 7, 26))
leftView.backgroundColor = .clearColor()

customField.leftView = leftView
customField.leftViewMode = .Always
customField.contentVerticalAlignment = .Center

Swift 4.x

let leftView = UILabel(frame: CGRect(x: 10, y: 0, width: 7, height: 26))
leftView.backgroundColor =.clear

customField.leftView = leftView
customField.leftViewMode = .always
customField.contentVerticalAlignment = .center

You should subclass UITextField and override drawText function.

check this for help OR You can do following:

UIView *paddingView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 15, height_of_textfiled)];
textField.leftView = paddingView;
textField.leftViewMode = UITextFieldViewModeAlways;

Objective c

For padding only placeholder this code will work

usernameTF.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"    Your text"];

For padding both placeholder and text of the UITextField this below code will work

usernameTF.layer.sublayerTransform = CATransform3DMakeTranslation(40, 0, 30);

Swift 3.0

For padding only placeholder this code will work

yourTextField.attributedPlaceholder = NSAttributedString(string: "    YourText")

For padding both placeholder and text of the UITextField this below code will work

usernameTF.layer.sublayerTransform = CATransform3DMakeTranslation(40, 0, 30)

You can subclass UITextField and override textRectForBounds and editingRectForBounds .

For example,

- (CGRect)textRectForBounds:(CGRect)bounds {
    return CGRectMake(bounds.origin.x + 10, bounds.origin.y + 5, bounds.size.width - 20, bounds.size.height - 10);
}

- (CGRect)editingRectForBounds:(CGRect)bounds {
    return CGRectMake(bounds.origin.x + 10, bounds.origin.y + 5, bounds.size.width - 20, bounds.size.height - 10);
}

斯威夫特4

yourTextField.layer.sublayerTransform = CATransform3DMakeTranslation(10, 0, 10)

您可以将文本域背景图像放在图像视图中,在imageview上方将文本字段留空。

-(void)textField:(UITextField *) textField didBeginEditing {
    if ([textField.text isEqualToString:@""] || textField.text == NULL) {
       textField.text = @" ";
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM