2017-04-13 14 views
0

UIScrollviewのグラデーションの背景をcontentSizeに作成したいとします。私はコードの下でこれを試しましたが、私が望むものは得られませんでした。UIScrollviewのコンテンツサイズのグラデーションの背景を作成する方法

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef currentContext = UIGraphicsGetCurrentContext(); 

    CGGradientRef glossGradient; 
    CGColorSpaceRef rgbColorspace; 
    size_t num_locations = 2; 
    CGFloat locations[2] = { 0.0, 1.0 }; 
    CGFloat components[8] = { 0.96, 0.97, 0.132, 1.000, // Start color 
    0.21, 0.20, 0.59, 1.000 }; // End color 

    rgbColorspace = CGColorSpaceCreateDeviceRGB(); 
    glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations); 

    CGRect currentBounds = scroller.bounds; 
    CGPoint topCenter = CGPointMake(CGRectGetMidX(currentBounds), 0.0f); 
    CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMaxY(currentBounds)); 
    CGContextDrawLinearGradient(currentContext, glossGradient, topCenter, midCenter, 0); 

    CGGradientRelease(glossGradient); 
    CGColorSpaceRelease(rgbColorspace); 
} 

これを達成する別の方法はありますか?

ご協力いただければ幸いです!

答えて

0
let gradient = CAGradientLayer() 
let frame = CGRect(origin: CGPoint.zero, size: scrollView.contentSize) 
gradient.frame = frame 
gradient.colors = [UIColor.red.cgColor, UIColor.green.cgColor] 
scrollView.layer.insertSublayer(gradient, at: 0) 
関連する問題