2017-05-08 72 views
0

在我的应用程序中,我有一个UITableViewCell,其中有一个UITextField。当用户开始在这个文本框中输入时,会出现一个自动完成视图。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; 
} 

这只不过是一个UIView更具有UITableView里面。但是,会发生什么情况是该视图隐藏在节标题和下一个单元格后面。 enter image description here

所以,虽然它似乎插入单元格上方,它会在它下面注册tapp。当您点击自动完成时,它会在下一个单元格中注册点击。我怎样才能解决这个问题?

+1

你为什么不使自来水的电池更大,以适应插入子视图? – pesch

+0

@ user4992124你最终解决了这个问题吗? –

回答

2

你的问题是你将它添加到视图而不是驻留在UIView中的tableview,以及有一个节头可能会阻止它。我看到你的y位置只有53,所以你的头可能会阻止它。

我不是100%确定你希望你的结果被查看和使用的地方,这在你的问题中并不清楚。如果你希望你的看法是高于一切,你可以:

  1. “我有一个UITextField,用于它当用户开始在这个文本框输入,显示自动完成视图一个UITableViewCell。” - 将结果视图添加到您的单元格,而不是主视图; [cell.contentView addSubview...
  2. 将您的tableview更改为y的位置更改为self.autocomplete.view.frame.size.height。添加一个漂亮的小动画,因为它也改变位置,总是有点额外的东西。
  3. 考虑将它作为子视图添加到您的TableView并引入前台,应该工作。

little bit extra on the cell.contentView

+1

不应该使用'[cell.contentView addSubview ...'? –

+0

正确的你是@ Kamil.S感谢纠正。 –