2016-04-23 6 views
0

ユーザーが体重をポンドで入力できるテキストフィールドが必要です。現在、入力方法は入力していますが、編集不可能な "lbs"という文字列を追加したいと思います。ユーザーが入力した文字列の後に常に表示されます(つまり、ユーザーが140を入力すると '140 lbs' textFieldDidEndEditingから受け取った値と干渉しません。ある意味では、基本的にユーザーが入力すると移動する静的ラベルになります。これを行う最善の方法は何でしょうか?私はObjective-Cを使っています。ユーザーがUITextFieldで入力した後に編集不可能なラベルを追加する - iOS

+0

に応じて、あなたのstringのサイズを計算するのに役立ちますヘルパーメソッドです。 –

答えて

2

UITextFieldUILabelを追加してuserInteractionEnabled = NOにしてください。そして、各入力時にテキストの幅を計算する必要があります。 textField.textが広くなると、ラベルが移動します。そして、ここであなたはそれがあなたの条件に合う場合にも、きれいなアプローチとしてのUITextFieldのrightViewとrightViewModeプロパティを確認することができ、フォント

- (CGSize)sizeWithFont:(UIFont*)font boundingRectToHeight:(CGFloat)height { 
    NSMutableParagraphStyle* paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy]; 
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 

    NSDictionary * attributes = @{NSFontAttributeName:font, 
            NSParagraphStyleAttributeName:paragraphStyle}; 

    CGRect textRect = [self boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, height) 
             options:NSStringDrawingUsesLineFragmentOrigin 
             attributes:attributes 
             context:nil]; 

    return textRect.size; 
} 
関連する問題