このスタイルをコードで、より具体的には setSelected で模倣したいと考えています。
カスタムセルを使用していると仮定して、どうすればよいか誰にもわかりません。
このスタイルをコードで、より具体的には setSelected で模倣したいと考えています。
カスタムセルを使用していると仮定して、どうすればよいか誰にもわかりません。
すべてのセル選択スタイルはselectedBackgroundView
、セルのプロパティを設定することによって実装されます。システムの青と白の場合、これらは青とグレーのグラデーションを持つ組み込みビューです。セルの選択スタイルを青またはグレーに設定すると、選択した背景としてこれらのビューのいずれかを使用するようにセルに指示するだけです。
すべてのセル コンテンツをコンテンツ ビューに追加していれば、これらのスタイルをカスタム セルに引き続き使用できます。
独自のビュー (通常は伸縮可能な画像またはカスタム描画ビュー) を作成し、それをカスタム効果の選択された背景ビューとして設定できます。
セルが選択されると、そのコンテンツ ビューのサブビュー (ラベルなど) のいずれかが強調表示されるように指示されます (可能な場合)。highlightedTextColor
任意のラベルにを設定することで、これがどのように見えるかを制御できます。
に触れることなく、これらすべてを実現できますsetSelected
。それはすべて基本実装によって行われます。
UIColor
Apple によって実装されたものに正確に適合する投稿を見つけました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
。
これを試してみてください。
UIView *selectedBackgroundViewForCell = [UIView alloc]init];
[selectedBackgroundViewForCell setBackgroundColor:[UIColor grayColor]];
theCell.selectedBackgroundView = selectedBackgroundViewForCell;
(また)
cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SelectedCellBackground.png"]] autorelease];