是否有可能區分uitableview中某一行的哪一側已被點擊?檢測uitableviewcell的哪一側已被點擊:左或右
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//which side of row has been detected left or right
}
是否有可能區分uitableview中某一行的哪一側已被點擊?檢測uitableviewcell的哪一側已被點擊:左或右
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//which side of row has been detected left or right
}
您可以繼承UITableViewCell。在你的子類中,你可以製作一個iVar wasTouchOnLeft
。然後覆蓋touchesBegan
或touchesEnded
如下面的例子:
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch=(UITouch *)[touches anyObject];
if([touch locationInView:self].x< (0.5 * self.frame.size.width))
{
NSLog(@"Touched Left");
wasTouchOnLeft=YES;
}
else {
NSLog(@"Touched Right");
wasTouchOnLeft=NO;
}
[super touchesEnded:touches withEvent:event];
}
在的didSelectRowAtIndexPath
你UITableViewController
,那麼你可以訪問wasTouchOnLeft
變量的單元格。
非常感謝Ben! – user987723
清潔簡單,但非常強大!注意:對於任何使用Landscape或在寬度大於320的其他設備上進行顯影的人,請考慮使用
感謝您的評論Newbyman。我正在更新代碼以反映您的建議。 –
您無法直接在此方法中確定此情況。 但是,如果您真的想要此功能,請創建一個自定義桌面單元格,該單元格有兩個大按鈕(右側一個)或在單元格上應用觸摸識別器。
如果你有這樣的委託動作控制器 (你也可以把它存儲在單元格,並通過訪問它)表單元格
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(((YourCustomTableCell*)[tableView cellForRowAtIndexPath:indexPath]).clickedSideProperty) action;
else anotherAction;
}
但不如授之比didSelectRow訪問它...
謝謝,試圖用兩個按鈕的方式,但上下滾動tableview是非常緩慢的。即時通訊基本上將桌面視圖變成圖像網格,所以你可以選擇和圖像看到更多的信息。 – user987723
您是否使用自定義單元格的reusableIdentifier? – lukaswelte
也許更多的上下文來確定使用這個?你能描述一下我們正在談論的情況嗎? –