セルをグレーアウトさせる方法

はじめに

こんにちは。 ビンゴ中西です。
今回は、セルをグレーアウトして有効/無効を視覚的に表現する実装方法を考えてみました。

前提

セルはカスタムセルで作り、xibでセルの上にUIImageViewを載せた形をとっています。

セルの上に黒いViewを作り透過させる

はじめに考えたのが、セルの上に黒いViewを作りそのViewを透過させる方法。
ソースは以下のような感じ

UIView *grayView = [[UIView alloc] initWithFrame:cell.frame];
grayView.backgroundColor = [UIColor blackColor];
grayView.alpha = 0.5;
[cell insertSubview:grayView aboveSubview:cell.contentView];

発想を逆転させるんだ!!

しかしですね。上にViewを作るなんてことをしなくても、
実現可能なんですね。
弊社のWebでブイブイならしたデザイナが、Objective-Cなんて書いたことがないのに、
背景黒にしちゃって、画像を透過したらいいんじゃないですか?
というのでやってみました。

cell.backgroundColor = [UIColor blackColor];
cell.myCustomImage.alpha = 0.5;

簡単ですね :)