0

インターフェイスデザイナでは、非常に簡単な設定ができます。メインビュー(テーブルセルビュー)には、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;
}
4

1 に答える 1

0

わかりました、これは私にとってかなり愚かでした...私はUIImageViewのタグを0に設定し、viewWithTag:0そのビューを見つけるために使用していました。それでも、親ビューにもタグ0が付いていたため、背景のUIImageViewの代わりに、セル全体が画像に設定されていました(テーブルセルビューが応答するとは思いませんでしたが、応答しsetImageました。

UIImageViewのタグを5に変更しましたが、すべてがおかしなことになっています。

于 2012-05-22T14:52:49.793 に答える