2011-07-25 4 views
1

私は透明な背景を持たせたいUITableViewを持っていますが、セルのテキストを透明にしなければそれを得ることはできません。ここに私が持っているものがあります。セルの背景を透明にして、透明にしないでください。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
} 

NSString *labelString = @"Hello"; 

[cell setBackgroundColor:[UIColor darkGrayColor]]; 
cell.alpha 0.2f; 

cell.textLabel.textcolor = [UIColor whiteColor]; 
cell.textLabel.text = labelString; 

私は、このようなcontentViewの背景色とアルファのほか、backgroundViewの色とアルファの設定など、いくつかの他のものを試してみましたが、何も動作していないようにみえます。


+0

セルの作成方法とラベルの背景を設定してください。 – sosborn

答えて

2

このコードを-tableView:willDisplayCell:forRowAtIndexPath:に配置すると、問題が解決しました。

UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; 
backView.backgroundColor = [UIColor clearColor]; 
cell.backgroundView = backView; 
+0

色がalredyの 'clearColor'で' alpha = 0.2f'になっている点 – thesummersign

+1

UITableViewCellサブクラスで直接行うか、UITableViewCellを直接使用することをお勧めします。これは '-tableView:cellForRowAtIndexPath:'で行います。 willDisplayCellでは、セルが画面に表示されるたびに(スクロールを考えて)、各セルの背景ビューを作成します。パフォーマンスはあまり良くありません。 – Daniel

4

代わりのcell.alphaを設定し、

cell.backgroundColor = [UIColor clearColor]; 

ます。また、テーブルビューの背景を設定する必要があるかもしれません。