インターフェイスデザイナでは、非常に簡単な設定ができます。メインビュー(テーブルセルビュー)には、4つのサブビュー、すべての兄弟UIImageView
、および3つUILabel
のサブビューがあります。UIImageViewを使用してテーブル行の背景を表示しています。UIImageViewがz-indexツリーの一番後ろにあるように設定し、そのアルファを0.2に設定して画像を暗くします。そして、UILabelがその上を通過します。
インターフェイスデザイナでデザイン時に画像をイメージビューに設定すると、すべて問題ありませんが、デザイン時にイメージをイメージビューに設定すると(サーバーから実際の画像を受信します)、イメージビューのアルファ設定は次のようになります。無視すると、画像はalpha = 1で表示され、uiimageviewはすべてのラベルに表示されます。私も使おうとしまし[parent sendSubviewToBack:imageView]
たが、役に立ちませんでした。
私は何が欠けていますか?これが、テーブルの行を表示するためのコード全体です。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"OOItemInfoCell" owner:self options:nil] lastObject];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
OOXMLNode *infoNode = [searchItemList objectAtIndex:indexPath.row];
[(UILabel *)[cell viewWithTag:2] setText:[itemNode elementNodeWithKey:@"title"].value];
[(UILabel *)[cell viewWithTag:3] setText:[itemNode elementNodeWithKey:@"intro"].value];
[(UILabel *)[cell viewWithTag:4] setText:[NSString stringWithFormat:kThemeAge,
[itemNode elementNodeWithKey:@"theme"].value,
[itemNode elementNodeWithKey:@"age"].value]];
UIImageView *bgview = (UIImageView *)[cell viewWithTag:0];
[bgview setImage:[itemNode imageFromKey:@"background"]];
[cell sendSubviewToBack:bgview];
return cell;
}