回答
CAGradientLayer *gradientMask = [CAGradientLayer layer];
gradientMask.frame = CGRectMake(0, 0, myView.bounds.size.width, myView.bounds.size.height);
gradientMask.colors = @[(id)[UIColor redColor].CGColor,
(id)[UIColor greenColor].CGColor];
gradientMask.locations = @[@0.0, @0.10, @0.60, @1.0];
[myView.layer insertSublayer:gradientMask atIndex:0];
相應地調整位置值和幀大小。
我知道,但我如何計算基於角度值的起點和終點。如果你有任何這方面的公式比請讓我知道@kaushal –
這是通過PaintCode產生的稍微修改的碼,解決了只是此問題:
UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: self.view.bounds];
UIBezierPath* rectangleRotatedPath = [rectanglePath copy];
CGAffineTransform transform = CGAffineTransformMakeRotation(yourAngleInRadians);
[rectangleRotatedPath applyTransform: transform];
CGRect rectangleBounds = CGPathGetPathBoundingBox(rectangleRotatedPath.CGPath);
transform = CGAffineTransformInvert(transform);
CGPoint startPoint = CGPointApplyAffineTransform(CGPointMake(CGRectGetMinX(rectangleBounds), CGRectGetMidY(rectangleBounds)), transform);
CGPoint endPoint = CGPointApplyAffineTransform(CGPointMake(CGRectGetMaxX(rectangleBounds), CGRectGetMidY(rectangleBounds)), transform);
代碼獲取您的初始矩形(黑色矩形)和角度(示爲黑線),旋轉矩形(你會得到藍色矩形),然後找到旋轉的矩形(紅色矩形)的邊界框。使用反轉變換(藍點)將邊界上的端點(紅點)轉換並轉換(旋轉)。
其他溶液可能被找到你的矩形的交點和由所述角度限定的線。
感謝您的回答,但這種解決方案不適合我@mato –
試試吧,也許它會幫助
- (CAGradientLayer *)gradientLayerWithColors:(NSArray的*)顏色角度:(CGFloat的)角度{
CAGradientLayer *layer = [CAGradientLayer layer];
layer.colors = colors;
CGFloat x = angle/360.f;
CGFloat a = pow(sin((2*M_PI*((x+0.75)/2))),2);
CGFloat b = pow(sin((2*M_PI*((x+0.0)/2))),2);
CGFloat c = pow(sin((2*M_PI*((x+0.25)/2))),2);
CGFloat d = pow(sin((2*M_PI*((x+0.5)/2))),2);
layer.startPoint = CGPointMake(a, b);
layer.endPoint = CGPointMake(c, d);
return layer;
}
我已經嘗試過這種解決方案,但沒有設置適當的漸變@Eugene Sokolenko –
- 1. 如何在windows進度條中設置顏色漸變?
- 2. 爲surfaceview設置漸變背景顏色
- 3. 將背景設置爲漸變顏色
- 4. 如何設置可變的線性漸變顏色?
- 5. 爲uibutton背景圖像設置漸變顏色(顏色)iphone sdk
- 6. 如何設置從任何顏色(好)線性漸變透明?
- 7. 如何爲選項卡設置漸變顏色?
- 8. 如何設置文本框的按鈕漸變顏色?
- 9. 如何設置JButton在點擊時逐漸改變顏色
- 10. 設置NavigationBar和TabBar背景顏色與漸變在objective-c
- 11. 如何以編程方式設置進度條的顏色漸變?
- 12. Javascript顏色漸變
- 13. 顏色漸變(ColdFusion)
- 14. 如何設置漸變角度和類型到CAGradientLayer
- 15. 使用顏色漸變的角度svg或畫布
- 16. CSS - 如何爲不同高度設置漸變色背景
- 17. 如何實現跨瀏覽器不透明度漸變(不是顏色漸變)
- 18. 如何指定顏色漸變開始使用線性漸變的高度
- 19. 用顏色製作顏色漸變:
- 20. 如何在角度chart.js中設置餅圖顏色
- 21. 如何在角度材質中設置圖標的顏色?
- 22. 如何設置角度md-工具欄背景顏色
- 23. 如何創建漸變顏色
- 24. 如何複製UINavigationBar的漸變顏色?
- 25. 如何動畫漸變停止顏色?
- 26. 如何計算漸變顏色替換?
- 27. Highcharts數據標籤與漸變顏色
- 28. 的UILabel與顏色漸變到標籤
- 29. 實體與漸變條紋顏色
- 30. 與ggplot bin2d不對稱顏色漸變
看看'startPoint'和'CAGradientLayer'的'endPoint'來設置一個角度(它設置「行」,但可以從一個角度來翻譯)。 – Larme
如何根據角度值計算起始點和終點,因爲在特徵中角度值將被更改。如果你知道任何公式來計算起點和終點的角度值比請讓我知道@Larme –
這是簡單的數學。沒有真正的編程 – Larme