1

iOS6でテーブルビューを使用すると、奇妙な動作が発生します。彼らはtableview:didHighlightRowAtIndexPath:を追加したようですが、行を選択できないことを明らかにするユーザーエクスペリエンスの問題を引き起こしているようです(ユーザーは行を数回タッチする必要がある場合があります)。

ユーザーがテーブルビューをスカッフするか、少しスワイプしてタップすると、行は選択されなくなります(経由tableview:didSelectRowAtIndexPath:tableview:didHighlightRowAtIndexPath:呼び出されます)。

誰かが同様の問題を経験し、回避策を見つけましたか?フラグを使用してtableview:didSelectRowAtIndexPathから呼び出しようとしてtableview:didHighlightRowAtIndexPathいます。またはtableview:didHighlightRowAtIndexPath、iOS6およびtableview:didSelectRowAtIndexPathそれ以前のバージョンでは、行選択コールバックとして使用します。

何かご意見は?

4

1 に答える 1

0

新しいメソッドとフラグを導入することになりました。これは非常にクリーンなソリューションのようで、iOS6 とそれ以前のバージョンの両方で動作します。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (!_isFromHighlight)
    {
        [self selectRowAtIndexPath:indexPath];
    }
    _isFromHighlight=NO;
}

-(void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self selectRowAtIndexPath:indexPath];
    _isFromHighlight=YES;
}
于 2012-10-09T11:21:31.157 に答える