1
selectRowAtIndexPathを動作させるのに問題があります。アニメーションを開始する前にselectRowForIndexPath関数を呼び出すと、それは問題のtableviewを反転させ、tableviewは要求されたようにtableview行を強調表示しません。実際、テーブルビューに何かをしても何の反応も出ないようです。何が問題なの?UITableView selectRowAtIndexPathは何もしません。
私は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];
}
を動作するかどうかを確認し、[m_oTableView performSelectorOnMainThread:@selector(reloadData)withObject:nilにするwaitUntilDone:YES];トリックをしました。ありがとう〜 – futureelite7