【问题标题】:UIView stuck behind UITableview headerUIView 卡在 UITableview 标头后面
【发布时间】:2017-10-06 14:11:57
【问题描述】:

在我的应用程序中,我有一个 UITableViewCell 和一个 UITextField。当用户开始在此文本字段中输入时,会出现一个自动完成视图。

- (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。然而,发生的事情是这个视图隐藏在节标题和下一个单元格后面。

因此,虽然它似乎被插入到单元格上方,但它在其下方注册了 tapp。当您单击自动完成时,它会在下一个单元格中注册单击。我该如何解决这个问题?

【问题讨论】:

  • 你为什么不把你的单元格放大以适应插入的子视图?
  • @user4992124 你最终解决了这个问题吗?

标签: ios objective-c iphone uitableview uiview


【解决方案1】:

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

我不能 100% 确定您希望在哪里查看和使用您的结果,这在您的问题中并不清楚。如果您希望自己的观点高于一切,您可以:

  1. “我有一个带有 UITextField 的 UITableViewCell。当用户开始在此文本字段中输入时,会出现一个自动完成视图。” - 将结果视图添加到您的单元格,而不是主视图; [cell.contentView addSubview...
  2. 通过将其y 位置更改为self.autocomplete.view.frame.size.height 来向下移动您的tableview。添加一个漂亮的小动画,因为它也会改变位置,总是有点额外的东西。
  3. 考虑将其作为子视图添加到您的 TableView 并放在前面,应该可以。

(little bit extra on the cell.contentView)

【讨论】:

  • 你不应该使用[cell.contentView addSubview...吗?
猜你喜欢
  • 2020-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多