我面临一个非常奇怪的问题。我正在使用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
我现在能做什么?
答案 0 :(得分:5)
表格视图的超级视图(在本例中为self.view
)的框架结尾高于表格视图的底部。
如果设置:
,您可以看到这一点 self.view.clipsToBounds = YES;
要解决此问题,您需要
menuTable
的框架(减少height
的{{1}})menuTable.frame
的框架更高(self.view
增加height
)答案 1 :(得分:4)
任何人都会导致问题
您还可以使用添加到Xcode的visual debugging tools以3d方式查看视图顺序,并检查哪一个在另一个上。
答案 2 :(得分:1)
我遇到了同样的问题,只能通过将tableview的页脚高度设置为1来解决。 可能在将来帮助某人。
答案 3 :(得分:0)
这很可能是设置框架的问题。请检查您是否正确设置了框架。它应该适合superview。
答案 4 :(得分:0)
这是因为您的表格视图上方有一些控件。 因此,使用 bringSubviewToFront:方法将其置于顶部
[self.view bringSubviewToFront:table];
或
更改表格框架(减少桌子的某些高度)。
希望它对你有所帮助。
答案 5 :(得分:0)
我通过添加页脚视图和设置页脚高度来解决它。
(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
UIView *footer=[[UIView alloc]initWithFrame:CGRectZero];
return footer;
}
(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 1;
}
即使问题没有解决,也要在最后添加一个额外的单元格,并禁用用户与该单元格的交互。