我現在已經完美地工作了。我很放心,不必去GL。帶着面具只允許右半邊是可見的寶石 -
我基本繪製的第一個(在12點紅色)。
然後我得出剩餘11
然後我再次提請第一個,這個時間設置的面具,只顯示左半部分。
for(int i = 0; i <= 12; i++)
{
for (int dullGlow = 0; dullGlow <= 1; dullGlow++)
{
BOOL isDull = (dullGlow == 0) ? YES : NO;
CALayer* L = [CALayer layer];
CGImageRef dullImage = [ButtonImages dullImage: i % 12];
CGImageRef glowImage = [ButtonImages glowImage: i % 12];
L.contents = (id) (isDull ? dullImage : glowImage);
L.bounds = CGRectMake(0, 0, buttonSize, buttonSize);
L.opacity = (isDull ? 1.0 : 0.0);
if(i == 0 || i == 12)
{
CGFloat halfSize = buttonSize/2.0;
CGRect keepLeftHalf = CGRectMake(0, 0,
halfSize, buttonSize);
CGRect keepRightHalf = CGRectMake(halfSize, 0,
halfSize, buttonSize);
CALayer* maskLayer = [CALayer layer];
maskLayer.frame = (i == 0) ? keepRightHalf : keepLeftHalf;
maskLayer.backgroundColor = [UIColor greenColor].CGColor;
maskLayer.edgeAntialiasingMask = 0x0;
[L setMask: maskLayer];
}
[self.layer addSublayer: L];
layers[ dullGlow ] [ i ] = L;
} // dullGlow
} // i
設置爲抗鋸齒的所有4個邊緣0條款edgeAntialiasingMask的4個最低顯著位 - 沒有這條線,我得到一個縫。
如果有人能夠解釋掩蔽過程的機制 - 儘管我達到了正確的結果,我會非常感謝,但我是通過試驗和錯誤來完成的。
請注意,蒙版設置爲(不透明)綠色,並且它是可見的蒙版區域 - 即第一遍綠色矩形覆蓋圖像的右半部分,正是這種愛顯示。
我猜測,對每一個像素它是由α值
由於乘以層像素RGBA在掩模像素!我已經做了一個變種,它的作品非常漂亮。 –