2017-05-08 4 views
0

私のアプリではUITableViewCellUITextFieldがあります。このテキストフィールドでユーザーが入力を開始すると、オートコンプリートビューが表示されます。UIViewがUITableviewヘッダーの後ろについています

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    if (self.suggestions != nil) { 
     self.autocomplete = [[AutoComplete alloc] initWithFrame:CGRectMake(10, 53, self.frame.size.width-20, 200)]; 
     self.autocomplete.delegate = self; 
     self.autocomplete.suggestions = self.suggestions; 

     [self addSubview:self.autocomplete]; 
     [self bringSubviewToFront:self.autocomplete]; 
    } 

    return YES; 
} 

これは、内部UITableViewUIView以外の何ものでもありません。ただし、このビューはセクションヘッダーと次のセルの後ろに隠れています。 enter image description here

セルの上に挿入されているように見える間に、それはその下にタップを登録します。オートコンプリートをクリックすると、クリックが次のセルに登録されます。これをどうすれば解決できますか?

+1

なぜあなたは挿入サブビューに対応するために、タップ上のセルを大きくしないのですか? – pesch

+0

@ user4992124この問題は解決しましたか? –

答えて

2

あなたの問題は、UIViewに存在するテーブルビューではなくビューにも追加していることです。また、セクションヘッダーを持つと、おそらくそれをブロックします。あなたのyの位置はわずか53なので、あなたのヘッダーはそれを阻止する可能性が高いです。

結果を表示して使用する場所が100%わからないのですが、それはあなたの質問ではっきりしません。あなたが他のすべての上であるためにあなたのビューをしたい場合は、可能性:

  1. 「私はそれでUITextFieldのユーザーがこのテキストフィールドに入力し始めると、オートコンプリートのビューが表示されるとのUITableViewCellを持っています。」 - メインビューではなくセルに結果ビューを追加する。 [cell.contentView addSubview...
  2. yの位置をself.autocomplete.view.frame.size.heightに変更して、テーブルビューを下にシフトします。ポジションも変わるので、素敵なアニメーションを追加してください。いつも余分なものがあります。
  3. TableViewにサブビューとして追加し、前面に表示することを検討してください。

little bit extra on the cell.contentView

+1

'[cell.contentView addSubview ...'を使ってはいけませんか? –

+0

あなたは@ Kamil.Sです。訂正してくれてありがとう。 –

関連する問題