1

インターネット上で、テーブルビューを端でフェードする方法について多くの人が質問しているのを見てきました。ほとんど機能する特定のソリューションがあります。例は次のとおりです。

CAGradientLayer *maskLayer = [CAGradientLayer layer];

CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;

maskLayer.colors = [NSArray arrayWithObjects:(__bridge id)innerColor, (__bridge id)outerColor, nil];
maskLayer.locations = [NSArray arrayWithObjects:
                       [NSNumber numberWithFloat:0.8], 
                       [NSNumber numberWithFloat:1.0], nil];


maskLayer.bounds = CGRectMake(0, 0,
                              self.historyTable.frame.size.width,
                              self.historyTable.frame.size.height + self.headerLabel.frame.size.height);
maskLayer.anchorPoint = CGPointZero;

[self.view.layer addSublayer:maskLayer];

このコードはうまく機能しますが、単色にしかフェードできないという問題があります。私ができるようにしたいのは、背景画像にフェードアウトすることです(パターンがあり、画面ごとに変更できます)。これを行う方法はありますか?

ありがとう。

4

1 に答える 1

0

Cocoanetics チュートリアルについて話していると仮定すると、同じ問題が発生しました。最後の行を置き換えます。

[self.view.layer addSublayer:maskLayer];

これで:

self.historyTable.layer.mask = maskLayer;

基本的にチュートリアルの最後のステップはスキップしますが、マスクを tableView のレイヤーにアタッチします。

テーブルの上部と下部の処理を含む完全なソリューションについては、この回答も確認してください。

于 2014-01-21T14:40:52.940 に答える