我有一个UITableView。我在桌面旁边有一个像箭头的图像。
我必须检查箭头是否与特定单元格相交,以便我可以以编程方式选择该单元格。我该怎么做?
我在单元格/行的选择类型中没有问题,但在检测箭头是否在特定行上时遇到问题。
我已编写此代码但未正常工作:
NSArray *paths = [tableView indexPathsForVisibleRows];
for (NSIndexPath *path in paths)
{
CGRect myRect = [tableView rectForRowAtIndexPath:indexPath];
CGRect myRect1 = CGRectMake(-12, 234, 55, 52);
if (CGRectIntersectsRect(myRect1, myRect))
{
// Also tried [tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];
cell.selected = YES;
NSLog(@"\n \n \n myrect = %@ myrect1 = %@ , index = %@ \n \n ", NSStringFromCGRect(myRect),NSStringFromCGRect(myRect1), indexPath);
}
else
{
cell.selected = NO;
}
}
图像显示了我想要实现的目标,而不是现有的内容。
答案 0 :(得分:1)
好的...对于箭头的问题...我认为该表将IN REGARDS中的每一行的矩形返回到表格的框架。所以我认为你需要这样做:
for (NSIndexPath *path in paths)
{
CGRect myRect = [tableView rectForRowAtIndexPath:indexPath];
CGRect myRect1 = CGRectMake(-12, 234, 55, 52);
myRect.origin.x += tableView.frame.origin.x;
myRect.origin.y += tableView.frame.origin.y;
if (CGRectIntersectsRect(myRect1, myRect))
{
//selection code here
}
else
{
// whatever you want
}
}
答案 1 :(得分:0)
我找到了答案..发布代码
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
NSArray *paths = [tableView indexPathsForVisibleRows];
for (NSIndexPath *indexPath in paths)
{
CGRect myRect = [tableView convertRect:[tableView rectForRowAtIndexPath:indexPath] toView:[tableView superview]];
CGRect myRect1 = CGRectMake(-12, 236, 20, 30);
if (CGRectIntersectsRect(myRect1, myRect) && notSelected == FALSE)
{
notSelected = TRUE;
[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
}
else
{
notSelected = FALSE;
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
}
}