2011-07-21 15 views
4

UITableViewCellのに一式のUILabelビューを追加しました。その一部は重複する可能性があります。いずれかのラベルをタップすると、私はいくつかのアクションをトリガーしたい。また、タップされたラベルを上に持ってきたい。UITableViewCellでサブビューを前面に表示

ラベルにUITapGestureRecognizerを使用して、どのラベルがタップされているかを把握し、その操作を実行できます。しかし、タップされ重なったラベルを前面に持ってきても機能しません。

UILabel *foundLabel = ....; // find the label 
for (UITableViewCell *acell in theTable.visibleCells) { 
    UIView *cellContentView = acell.contentView; 
    if ([cellContentView.subviews containsObject:foundLabel]) { 
     [cellContentView bringSubviewToFront:foundLabel]; 
     NSLog(@"should bring to front..."); 
    } 
} 

私は上記のNSLog出力を得るか、私はbringSubviewToFrontは、適切なセルのcontentViewに呼び出されていることを知っている:これは私がしようとしていますものです。しかし、サブビューレイアウトの変更はありません。

アイデア?

+0

あなたは、このためのソリューションを見つけますか?私が似たような問題を抱えていることを知りたいですか? –

答えて

3

bringSubviewToFront:はどちらか

後者のサブビューは、タブバー、ナビゲーションバー、テーブルビューとしてスーパービューをあるinsertSubview:belowSubview:を試してみてください私のために動作しませんでした。

+0

注:insertSubviewは後続の呼び出しで余分なUIViewレプリカを作成しません。 – rodowi

12

uitablviewcellのレイヤー上の位置を調べることが1つあります。

これが成功した私のために、別の目の前でtableviewcellに置く:

cell1.layer.zPosition=3 ;//above 

    cell2.layer.zPosition=2 ;//below