Iphone UITableView selectRowAtIndexPath不执行任何操作
我在获取SelectRowAtIndex路径以进行工作时遇到问题。如果在启动动画之前调用selectRowForIndexPath函数,这会翻转有问题的tableview,tableview将不会根据请求高亮显示tableview行。事实上,似乎对tableview执行任何操作都不会给出任何响应。有什么问题吗 我还调用了setNeedsDisplay等等,但是这些函数似乎什么都没有做Iphone UITableView selectRowAtIndexPath不执行任何操作,iphone,uitableview,iphone-sdk-3.0,Iphone,Uitableview,Iphone Sdk 3.0,我在获取SelectRowAtIndex路径以进行工作时遇到问题。如果在启动动画之前调用selectRowForIndexPath函数,这会翻转有问题的tableview,tableview将不会根据请求高亮显示tableview行。事实上,似乎对tableview执行任何操作都不会给出任何响应。有什么问题吗 我还调用了setNeedsDisplay等等,但是这些函数似乎什么都没有做 - (void)setCurrentTAType:(MHAbstractTAParameter *)aoTAPa
- (void)setCurrentTAType:(MHAbstractTAParameter *)aoTAParameter sequenceNo:(NSInteger)aiSequence {
m_iSequence = aiSequence;
NSInteger iSelectedRow = 0;
if ([aoTAParameter isKindOfClass:[MHOverlayTAParameter class]]) {
m_iDisplayType = MHChartTADisplayOverlay;
[m_oTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
MHOverlayTAParameter *oOverlayParam = (MHOverlayTAParameter *)aoTAParameter;
switch (oOverlayParam.iOverlayTAType) {
case MHChartOverlayNone:
iSelectedRow = 0;
break;
case MHChartOverlaySMA:
iSelectedRow = 1;
break;
case MHChartOverlayWMA:
iSelectedRow = 2;
break;
case MHChartOverlayEMA:
iSelectedRow = 3;
break;
case MHChartOverlaySAR:
iSelectedRow = 4;
break;
case MHChartOverlayBoll:
iSelectedRow = 5;
break;
default:
iSelectedRow = 0;
break;
}
} else {
m_iDisplayType = MHChartTADisplayUnderlay;
[m_oTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
MHUnderlayTAParameter *oUnderlayParam = (MHUnderlayTAParameter *)aoTAParameter;
switch (oUnderlayParam.iUnderlayTAType) {
case MHChartUnderlayNone:
iSelectedRow = 0;
break;
case MHChartUnderlayVolume:
iSelectedRow = 1;
break;
case MHChartUnderlayRSI:
iSelectedRow = 2;
break;
case MHChartUnderlayMACD:
iSelectedRow = 3;
break;
case MHChartUnderlayMTM:
iSelectedRow = 4;
break;
case MHChartUnderlayROC:
iSelectedRow = 5;
break;
case MHChartUnderlayFastSTC:
iSelectedRow = 6;
break;
case MHChartUnderlaySlowSTC:
iSelectedRow = 7;
break;
case MHChartUnderlayWilliamPctR:
iSelectedRow = 8;
break;
case MHChartUnderlayOBV:
iSelectedRow = 9;
break;
case MHChartUnderlayPVT:
iSelectedRow = 10;
break;
case MHChartUnderlayDMI:
iSelectedRow = 11;
break;
case MHChartUnderlayVolumeP:
iSelectedRow = 12;
break;
case MHChartUnderlayTurnover:
iSelectedRow = 13;
break;
case MHChartUnderlayTurnoverP:
iSelectedRow = 14;
break;
case MHChartUnderlayVolatility:
iSelectedRow = 15;
default:
iSelectedRow = 0;
break;
}
}
NSIndexPath *oIndexPath = [NSIndexPath indexPathForRow:iSelectedRow inSection:0];
[m_oTableView selectRowAtIndexPath:oIndexPath animated:YES scrollPosition:UITableViewScrollPositionMiddle];
[m_oTableView setNeedsDisplay];
}
除掉
[m_oTableView performSelectorOnMainThread:@selector(reloadData)with object:nil waitUntilDone:NO]代码>
我感觉在您告诉表选择该行之前,这还没有完成,因此指定的索引路径可能不存在
只需将该调用替换为[m_-oTableView-reloadData]
,然后查看是否有效[m_-oTableView-performSelectorOnMainThread:@selector(reloadData)with-object:nil waitUntilDone:YES];成功了。谢谢~