私はラジオグラデーションの背景を持つViewControllerを持っています。その中には、セルとセクションを持つUITableViewがあります。今は、スクロールするときにテーブルビューの背後にグラデーションを表示したいと思います。問題は、セクションが上部にロックされている場合、セクションの後ろにあるセルが見えることです。私はセクションの背景色を設定しますが、それを行うとラジアルグラデーションの背景に一致しません。 clearColorのバックグラウンドを維持しながら、セクションの下にあるセルクリップを持っていますか?clearColorの背景を持つUITableViewセクション?
答えて
私が理解していれば、完全にクリアなテーブルビューとテーブルビューセルが必要なので、ビューコントローラのバックグラウンドを見ることができます。
あなたはまた、セクションを透明にしたい場合は、この方法を使用することができます
cell.backgroundColor = [UIColor clearColor]
バックグラウンド
tableview.backgroundColor = [UIColor clearColor];
tableView.opaque = NO;
tableView.backgroundView = nil;
ともセルを有していないとして、テーブルビューを設定することによって、これを達成することができます:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
カスタムビューを作成する(たとえば、トランスペアレンt .png背景)
私はあなたの質問を正しく理解することを願っています。細胞は、セクションヘッダの下に行く前に停止することを外観を与えるために
明確化した後
編集:
このIVARとのUITableViewのサブクラスであるクラスを作る:
@interface CustomTableView : UITableView
{
CAGradientLayer* maskLayer;
}
これは明らかにグラデーションを作成しますが、必要に応じて調整するか、CALayer
、プログラムでマスクを作成するのではなく、セクションヘッダーの正しい幅/高さで.pngを作成します。とにかく
:その後、
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self)
{
[self setupGradients]; //call your method
}
return self;
}
- (void)setupGradients
{
[self addObserver:self forKeyPath:@"contentOffset" options:0 context:nil];
*/ ***** if you choose to use CALayer instead of CAGradient ****** */
//maskLayer = [[CALayer layer] retain];
//maskLayer.contents = (id) [UIImage imageNamed:@"maskLayer.png"].CGImage;
//maskLayer.backgroundColor = [UIColor clearColor].CGColor;
*/ ***** if you choose to use CALayer instead of CAGradient ****** */
maskLayer = [[CAGradientLayer layer] retain];
CGColorRef outerColor = [UIColor colorWithWhite:1.0 alpha:0.0].CGColor;
CGColorRef innerColor = [UIColor colorWithWhite:1.0 alpha:1.0].CGColor;
maskLayer.colors = [NSArray arrayWithObjects:(id)outerColor,
(id)innerColor, (id)innerColor, (id)outerColor, nil];
maskLayer.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.9],
[NSNumber numberWithFloat:1.0], nil]; //this creates a gradient effect. Tweak these numbers for a hard line.
maskLayer.bounds = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
maskLayer.anchorPoint = CGPointZero;
self.layer.mask = maskLayer;
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
[CATransaction begin];
[CATransaction setDisableActions:YES];
maskLayer.position = CGPointMake(0, self.contentOffset.y);
[CATransaction commit];
}
あなたのビューコントローラに:あなたはCAGradientLayer
を使用する場合の基本的な考え方はマスクである
CustomTableView *_tableView; //ivar
_tableView = [[CustomTableView alloc] initWithFrame:YOUR_FRAME];
、あなたはあなたのテーブルビューの上にマスク形状を作成しますセクションヘッダーと同じサイズです。細胞がその背後で「消える」ように見えます。ちょっとトリッキーですが、うまくいくでしょう。
私は達成しようとしていることを理解していますが、問題はありません。問題は、私のセクションが透過的なので、セクションの後ろを通過するときに細胞が見えるということです。これは、セルとセクションの混乱を招いてひどく見えます。私は答えをありがとう、 – Bobbake4
ああ私は今理解しています。興味深い質問。私はあなたがそれをどうやってできるかという考えを持っていますが、ちょっとハッキリです。私は上記の私の答えを編集します。 – sixstatesaway
独自のヘッダービューを作成せずに透過セクションヘッダーを取得する簡単な方法。
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
if ([view isKindOfClass:[UITableViewHeaderFooterView class]]) {
UITableViewHeaderFooterView *headerView = (UITableViewHeaderFooterView *)view;
headerView.contentView.backgroundColor = [UIColor clearColor];
headerView.backgroundView.backgroundColor = [UIColor clearColor];
}
}
コードのこの作品は、iOSの7に完全に正常に動作
EDIT (私はこれは少し遅れている知っているが、これと一緒にあなたは必ず背景色を作る2行を追加する必要があります背景色の背景色?)も明確である。
tableView.backgroundColor = [UIColor clearColor];
tableView.backgroundView.backgroundColor = [UIColor clearColor];
パーフェクト!それは私のために働いた。どうもありがとうございました –
- 1. UITableViewセクションの背景?
- 2. カスタムセルを持つUITableViewのセクション
- 3. グループ化されたUITableViewのセクションの背景
- 4. 複数の行とセクションを持つUITableview
- 5. UITableViewセクションタイトルの背景色を
- 6. セクションと検索フィールドを持つUITableView
- 7. セクションごとの背景
- 8. カスタムXLFormセクションの背景色
- 9. セットのUITableViewの背景ビュー
- 10. のUITableViewセルの背景カスタムカラー
- 11. UITableViewの勾配の背景
- 12. UItableviewセルの背景色
- 13. UITableView全体を更新せずにセクションの背景色を更新
- 14. デザインUITableView背景画像
- 15. UITableViewのチェックマークは白い背景を持っています
- 16. 最初のセクションのYoutubeの背景
- 17. 各セクションの各TableViewの背景画像?
- 18. カスタムビューの背景を持つダイアログ
- 19. 複数の背景色を持つCardview
- 20. 複数の背景スレッドを持つコアデータ
- 21. 子divを持つdivの背景色
- 22. カスタム行の背景を持つNSTableView
- 23. グラデーションの背景色を持つCSSトライアングル
- 24. ハイチャート:画像の背景を持つ円
- 25. 半透明の背景を持つキャンバス
- 26. UITableViewの背景でのタップの検出
- 27. 背景画像の遷移セクション
- 28. uitableviewのセルを持たないセクション
- 29. セクションを持つUITableView用の受信JSONをフォーマットする方法
- 30. 複数のセクションを持つUITableViewから行を削除する
スクリーンショットを投稿できますか?これを視覚化するのは苦労します。 –
tableview.backgroundColor = [UIColor clearColor]を設定できます。 – kamleshwar