У меня проблема при получении selectRowAtIndexPath. Если я вызову функцию selectRowForIndexPath перед запуском анимации, которая переворачивает рассматриваемое табличное представление, табличное представление не выделит строку табличного представления в соответствии с запросом. На самом деле, кажется, что что-то делать с таблицей не дает никакого ответа. В чем может быть проблема?
Я также вызвал setNeedsDisplay и еще много чего, но функции, похоже, ничего не делают.
- (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];
}