2

Facebookの「ステータスの更新」ビューに似た画面をiOSで再現したいと思います。

ここに画像の説明を入力してください ここに画像の説明を入力してください

(このテキストは編集可能である必要があります)ウォーキング(ここを過ぎたものは編集可能ではありません)-サウスナラビーンビーチで

ユーザーは、追加された文字列の左側にテキストを入力/編集できる必要があります。追加された文字列は、その親内で折り返され、クリック可能である必要があります。

誰かがこれがどのように行われるか知っていますか?(最近、Viddyアプリでも見ました)。

テキストが入力されるとフレームを更新するUIAttributedStringが2行に分割された成長中のUITextFieldでしょうか?

4

1 に答える 1

3

更新: ユーザーがとにかく署名にカーソルを置くことができるようにしたいが、タイプは許可しないようにし
たいようです。その場合は、代わりにこれを使用します。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
   NSInteger signatureLength=20;
   if(range.location>self.textView.text.length-signatureLength){
       return false;
   }
   else{
       return true;
   }
}

オリジナル:

UITextViewDelegateを使用する必要があります

-(void)textViewDidChangeSelection:(UITextView *)textViewメソッドを実装します。次のようになります。

この例では、署名の長さが20であると仮定します。これは、次のようになります。

-(void)textViewDidChangeSelection:(UITextView *)textView{
       NSInteger signatureLength=20;
       NSRange newSelection=self.textView.selectedRange;
       if(newSelection.location>self.textView.text.length-signatureLength){
           [self.textView setSelectedRange:NSMakeRange(self.textView.text.length-signatureLength, 0)];
       }
 }

したがって、基本的には、選択範囲(この場合はカーソル)が変更されるたびにインターセプトし、カーソルが署名の中央にある場合は、直前に位置を変更します。長さが0の選択範囲を設定すると、カーソル位置が変わるだけです。

于 2012-04-22T01:14:42.623 に答える