3
메인 화면에 스크롤하는 텍스트가있는 iOS 앱이 있습니다. 화면 맨 아래에 텍스트가 희미 해지기를 원합니다. 그래서 사용자 지정보기를 만들 drawRect
에서 같은 것을 할 : iOS에서 흰색 위에 투명한 흰색 그라디언트 그리기
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat gradLocs[] = {0, 1};
CGColor *color1 = [UIColor clearColor].CGColor;
CGColor *color2 = [UIColor whiteColor].CGColor;
CFArrayRef arr = (CFArrayRef)@[(id)color1, (id)color2];
CGGradientRef grad = CGGradientCreateWithColors(colorSpace, arr, gradLocs);
CGContextSaveGState(context);
CGContextDrawLinearGradient(context, grad, CGPointMake(0, 0), CGPointMake(0, rect.size.height), 0);
CGContextRestoreGState(context);
는 기본적으로,보기를 통해 흰색으로 명확에서 선형 그라데이션을 그립니다. 나는 또한
CAGradientLayer
으로 그 일을 시도했습니다
CAGradientLayer *layer = [CAGradientLayer layer];
layer.colors = @[(id)[UIColor clearColor].CGColor, (id)[UIColor whiteColor].CGColor];
layer.locations = @[@(0), @(1)];
layer.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[self.layer insertSublayer:layer atIndex:0];
어느 쪽이든을,이 흰색의 맨 위에 그려 얻는 경우에, 나는 회색 얻는다. 왜이
입니다 : PaintCode는 같은 일을 보여줍니다? 그라데이션이 흰색 위에 전혀 보이지 않아야하는 것처럼 보입니다.