我正在處理顯示核心動畫圖層網格的視圖。當我刪除圖層時,我希望該圖層淡出並讓其他圖層移動以填補空白。這幾乎符合我希望使用隱式動畫的方式。唯一的問題是,當這些圖層的副本移動到新位置時,應該移動的圖層淡出。我如何改變這種行爲,讓圖層移動而不是移動和淡入?CoreAnimation淡出圖層並移動副本而不是僅移動圖層
要刪除的單層我只是做[theLayer removeFromSuperLayer]
,然後調用它做這個容器層上我的佈局例行:
CGFloat x = 0;
CGFloat y = CGRectGetMaxY([layer bounds]) - buttonHeight - buttonVPadding;
for (CALayer *l in [layer sublayers]) {
if ([layer bounds].size.width < x + buttonWidth) {
x = 0;
y -= buttonHeight + buttonVPadding;
}
CGRect bounds = CGRectMake(0, 0, buttonWidth, buttonHeight);
[l setBounds: bounds];
[l setPosition: CGPointMake(x, y)];
x += buttonWidth + buttonVPadding;
}
我試圖重寫在- (id<CAAction>)actionForLayer:(CALayer *)layer forKey:(NSString *)event;
默認的動畫行爲,但我無法找到要重寫哪些事件以獲得所需的行爲。