我有一个UITextField子类,我已经覆盖了一些方法(参见下面的代码).问题是,当我输入它并且文本达到严格边距时,它将不再显示我正在键入的内容.在视图调试模式中,我看到UIFieldEditor比文本提交的要宽得多.
这是UITextFiled子类代码:
- (instancetype)init { self = [super init]; if (self) { self.edgeInsets = UIEdgeInsetsMake(7,10,15); } return self; } - (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { self.edgeInsets = UIEdgeInsetsMake(7,15); } return self; } -(id)initWithCoder:(NSCoder *)aDecoder{ self = [super initWithCoder:aDecoder]; if(self){ self.edgeInsets = UIEdgeInsetsMake(7,15); } return self; } - (CGRect)textRectForBounds:(CGRect)bounds { return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds,self.edgeInsets)]; } - (CGRect)editingRectForBounds:(CGRect)bounds { return [super editingRectForBounds:UIEdgeInsetsInsetRect(bounds,self.edgeInsets)]; }
这是我使用这个类的代码:
// alloc / init _myTextField.delegate = self; _myTextField.backgroundColor = [UIColor whiteColor]; _myTextField.layer.masksToBounds = YES; _myTextField.layer.cornerRadius = 3.0; _myTextField.returnKeyType = UIReturnKeyDone; _myTextField.clearButtonMode = UITextFieldViewModeWhileEditing; _myTextField.autocapitalizationType = UITextAutocapitalizationTypeWords; _myTextField.autocorrectionType = UITextAutocorrectionTypeNo; _myTextField.hidden = YES; _tfButton = [UIButton buttonWithType:UIButtonTypeSystem]; [_tfButton setImage:[UIImage imageNamed:@"ic_edit"] forState:UIControlStateNormal]; [self fs_addSubview:_tfButton]; [_tfButton constrainWidth:22.]; [_tfButton setTintColor:[UIColor greenColor]]; [_tfButton constrainHeight:22.]; [_tfButton constrainToRightOfView:_myTextField margin:-25.0]; [_tfButton constrainEqualCenterYWithView:_myTextField offset:0.0]; [_tfButton setUserInteractionEnabled:NO]; UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0,5,5)]; _myTextField.leftView = leftView; _myTextField.leftViewMode = UITextFieldViewModeAlways;
当用户在此文本字段中键入大字符串时,如何让文本在左侧滚动?
解决方法
你的代码是完全正确的.问题来自UITextField类.
当您在故事板中放入UITextField时,将其fontSize和minFontSize设置为50.此系统textField将与您的自定义textField具有相同的问题.
当您在故事板中放入UITextField时,将其fontSize和minFontSize设置为50.此系统textField将与您的自定义textField具有相同的问题.
这只是因为UITextField不知道如何在狭窄的空间中绘制大字体.
我使用了textField的子类(默认高度为30),在将字体大小更改为7之后,一切正常.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。