2

このスタイルをコードで、より具体的には setSelected で模倣したいと考えています。

カスタムセルを使用していると仮定して、どうすればよいか誰にもわかりません。

4

3 に答える 3

2

すべてのセル選択スタイルはselectedBackgroundView、セルのプロパティを設定することによって実装されます。システムの青と白の場合、これらは青とグレーのグラデーションを持つ組み込みビューです。セルの選択スタイルを青またはグレーに設定すると、選択した背景としてこれらのビューのいずれかを使用するようにセルに指示するだけです。

すべてのセル コンテンツをコンテンツ ビューに追加していれば、これらのスタイルをカスタム セルに引き続き使用できます。

独自のビュー (通常は伸縮可能な画像またはカスタム描画ビュー) を作成し、それをカスタム効果の選択された背景ビューとして設定できます。

セルが選択されると、そのコンテンツ ビューのサブビュー (ラベルなど) のいずれかが強調表示されるように指示されます (可能な場合)。highlightedTextColor任意のラベルにを設定することで、これがどのように見えるかを制御できます。

に触れることなく、これらすべてを実現できますsetSelected。それはすべて基本実装によって行われます。

于 2013-04-20T06:42:23.493 に答える
1

UIColorApple によって実装されたものに正確に適合する投稿を見つけましたUITableViewCellSelectionStyleGray:

UIColor* selectedColor = [UIColor colorWithRed:217.0/255.0 
                                         green:217.0/255.0 
                                          blue:217.0/255.0 alpha:1.0];

setSelected:(BOOL)selected選択内容を変更するには、カスタムUIButton拡張機能内にメソッドを実装するだけです。これは次のようになります。

- (void)setSelected:(BOOL)selected{
    [super setSelected:selected];
    if( selected ){
        // change things here on highlight
    } else {
        // change things here on unhighlight
        NSLog(@"unselected");
    }    
}

このモードに入るには、セルを に設定する必要がありますselected = YES

元の投稿はここにあります。

于 2015-05-08T10:26:37.503 に答える
-1

これを試してみてください。

UIView *selectedBackgroundViewForCell = [UIView alloc]init];
[selectedBackgroundViewForCell setBackgroundColor:[UIColor grayColor]];
theCell.selectedBackgroundView = selectedBackgroundViewForCell;

(また)

cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease]; 
于 2013-04-20T06:13:14.000 に答える