亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在-[CALayer setNeedsDisplayInRect:]中禁用隱式動畫

在-[CALayer setNeedsDisplayInRect:]中禁用隱式動畫

iOS
ibeautiful 2019-12-10 13:08:50
我的-drawInContext:方法中有一個包含一些復雜繪圖代碼的層。我試圖盡量減少需要做的繪圖,所以我使用-setNeedsDisplayInRect:來僅更新已更改的零件。這是出色的工作。但是,當圖形系統更新我的圖層時,它會使用淡入淡出功能從舊圖像過渡到新圖像。我希望它可以立即切換。我嘗試使用CATransaction關閉操作并將持續時間設置為零,但都無法正常工作。這是我正在使用的代碼:[CATransaction begin];[CATransaction setDisableActions: YES];[self setNeedsDisplayInRect: rect];[CATransaction commit];我應該改用CATransaction上的其他方法嗎(我也嘗試了-setValue:forKey:和kCATransactionDisableActions,結果相同)。
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

也:


[CATransaction begin];

[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];


//foo


[CATransaction commit];



查看完整回答
反對 回復 2019-12-11
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

更改圖層的屬性時,CA通常會創建一個隱式事務對象以使更改動起來。如果您不想為更改設置動畫,則可以通過創建顯式事務并將其kCATransactionDisableActions屬性設置為true來禁用隱式動畫。


目標C


[CATransaction begin];

[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];

// change properties here without animation

[CATransaction commit];

迅速


CATransaction.begin()

CATransaction.setValue(kCFBooleanTrue, forKey: kCATransactionDisableActions)

// change properties here without animation

CATransaction.commit()



查看完整回答
反對 回復 2019-12-11
  • 3 回答
  • 0 關注
  • 561 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號