UITableView最后一行确实选择不正常工作?

War*_*olf 4 iphone uitableview didselectrowatindexpath

我面临一个非常奇怪的问题.我正在使用tableView用于菜单目的.它工作正常.但问题是在该表的最后一行中,只有上半区域的火灾确实选择了事件.当我点击最后一行的中间时,确实选择不起作用.点击单元格的上半部分,选择工作正常.任何人都可以详细说明吗?

这是我使用tableView的截图: -

在此输入图像描述

这是我在backTableView的didSelect上设置表的y位置的代码.

        UITableView *menuTable=(UITableView*)[self.view viewWithTag:5];
    CGRect rect=[menuTable frame];
    rect.origin.y-=rect.size.height;

    [UIView animateWithDuration:0.3 animations:^{
        [menuTable setFrame:rect];
    } completion:^(BOOL finished) {

        [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
        isMenuOpen=YES;
        [bgView setFrame:self.view.frame];
        [self.view insertSubview:bgView belowSubview:menuTable];
        for (UIView *view in self.view.subviews) {
            if (view!=menuTable && view.tag!=44) {
                [view setUserInteractionEnabled:NO];
            }
        }
        NSLog(@"animation completed");
    }];

Setted rowHeight to 40
bringSubViewtoFront
TableHeight to 80 
Run Code Online (Sandbox Code Playgroud)

我现在能做什么?

Lit*_*T.V 5

任何一个都会导致问题

  • 上面的一些视图与表格视图重叠
  • 表格单元格的高度未正确设置
  • 委托设置不正确
  • 确保表格视图框架及其超级视图框架设置正确[如果超级视图的高度较小,则会出现此问题]
  • 如果有页脚或页眉以及多个部分,请检查委托方法以过滤表格视图应显示页眉/页脚并检查高度。

您还可以使用添加到 Xcode 的可视化调试工具以 3D 方式查看视图顺序,并检查哪个视图优先于另一个视图。


Aar*_*ger 5

表视图的超级视图(在本例中为self.view)具有一个高于表视图底部的框架.

如果设置,您可以看到:

self.view.clipsToBounds = YES;

要解决这个问题,你需要

  • 使menuTable的帧短(减少heightmenuTable.frame)
  • self.view"S架构高(增加heightself.view.frame)