グラデーションカラーコードを作成し、データに応じて異なる高さのダイナミックテーブルビューセルに設定したいと思います。 テーブルセルのレイヤーに追加するときにレイヤーを使用しました。テーブルのデータが読み込まれた後、正確なテーブルビューのセルの高さが必要です。iosのリロード時にダイナミックテーブルセルにグラデーションカラーレイヤーを適用する方法
-(void)setTableData:(NSMutableArray *)tableData{
tableHeightConstraints.constant = cellHeight * tableData.count;
_tableData = tableData;
[self.tableView reloadData];
[self layoutIfNeeded];
CAGradientLayer *bgLayer = [self greyGradient];
bgLayer.cornerRadius = 5.0f;
bgLayer.frame = CGRectMake(0, 0, self.contentView.frame.size.width, self.contentView.frame.size.height);
self.backgroundImageViewTc.image = [self greyImageFromGradient:bgLayer];
[self layoutIfNeeded];
}
+ (CAGradientLayer*) greyGradient {
UIColor *colorOne = [UIColor colorWithWhite:0.9 alpha:1.0];
UIColor *colorTwo = [UIColor colorWithHue:0.625 saturation:0.0 brightness:0.85 alpha:1.0];
UIColor *colorThree = [UIColor colorWithHue:0.625 saturation:0.0 brightness:0.7 alpha:1.0];
UIColor *colorFour = [UIColor colorWithHue:0.625 saturation:0.0 brightness:0.4 alpha:1.0];
NSArray *colors = [NSArray arrayWithObjects:(id)colorOne.CGColor, colorTwo.CGColor, colorThree.CGColor, colorFour.CGColor, nil];
NSNumber *stopOne = [NSNumber numberWithFloat:0.0];
NSNumber *stopTwo = [NSNumber numberWithFloat:0.02];
NSNumber *stopThree = [NSNumber numberWithFloat:0.99];
NSNumber *stopFour = [NSNumber numberWithFloat:1.0];
NSArray *locations = [NSArray arrayWithObjects: stopOne, stopTwo, stopThree, stopFour, nil];
CAGradientLayer *headerLayer = [CAGradientLayer layer];
headerLayer.colors = colors;
headerLayer.locations = locations;
return headerLayer;
}
+ (UIImage *) greyImageFromGradient:(CAGradientLayer*) layer{
UIGraphicsBeginImageContext(layer.bounds.size);
[layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
このコードでは、正確なサイズの画像を作成できないため、ぼやけてしまいました。
はあなたがセルに色を適用するか、またはあなたがしたいんなら、私に知らせて見つけることができますセルの高さを設定するには? –
ダイナミックテーブルセルにグラデーションカラーを適用したい。質問は、私は動的なテーブルビューのセルの背景に設定することができますような方法で勾配の色を作成する方法です。 –
あなたがしたコードを教えてもらえますか? –