13

UITableViewのセクションの背後で背景画像を使用することは可能ですか?

これを実現する方法が思いつかない。

4

3 に答える 3

7

テーブルビューの後ろにビューを配置し、テーブルビューの背景色を[UIColor clearColor]に設定すると、後ろのビューが表示されます。

[self.view addSubview:self.sectionBackgroundView];
[self.view addSubview:self.tableView];
self.tableView.backgroundColor = [UIColor clearColor];

これの欠点は、これが必要なセクションだけに限定されないことです。このバッキングビューが1つのセクションのみに限定されるようにする方法のひとつは、バッキングビューのフレームをカバーされる領域に調整することです。テーブルビューがスクロールされるたびのセクション

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGRect sectionFrame = [self.tableView rectForSection:sectionWithBackground];
    self.sectionBackgroundView.frame = sectionFrame;
}

ビューが正しく開始されることを確認するために、最初に(おそらくviewWillAppear:)でもこれを行う必要があります。

于 2012-07-29T16:10:05.830 に答える
2

UITableViewのセクションの後ろに背景画像を追加してスクロールするには、viewDidAppearに書き込みます

let frame = tableView.rect(forSection: 0)
let view = UIView(frame: frame)
let imgView = UIImageView(frame: view.bounds)

// Assign image here ...

view.addSubview(imgView)

tableView.addSubview(view)
tableView.sendSubviewToBack(view)

注:背景ビューが表示されるように、テーブルビューセルの背景色をクリアに保ちます

于 2019-11-03T07:09:17.293 に答える
0

Swift 5
は、テーブルビューでデータを更新した後、次のコードを記述します。

        let frame = tableView.rect(forSection: 0)
        let backgroundView = UIView(frame: frame)
        let imageView = UIImageView(frame: view.bounds)
        imageView.image = your image
        backgroundView.addSubview(imageView)
        tableView.addSubview(backgroundView)
        tableView.sendSubviewToBack(backgroundView)
        tableView.backgroundColor = .clear

willDisplaycellその後、次のように方法でセルを前面に移動する必要があります。

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        tableView.bringSubviewToFront(cell)
}
于 2021-05-09T14:45:27.143 に答える