日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类

發(fā)布時間:2023/12/2 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

擴展第三方類

細(xì)心的朋友可能會發(fā)現(xiàn),我們前面計算主角的大小用的總是同一方向第一幀紋理的大小,如果紋理大小有出入的話,會產(chǎn)生較大的偏差,最好的方法是取當(dāng)前動畫幀紋理的大小。不過這有些難度,所以我們退之求其次,計算所有幀的平均大小吧。

這次我們不修改原有的第三方類,因為我們上面已經(jīng)熟悉了類的內(nèi)部功能,所以我們直接用Swift寫一個類的擴展吧(Objective-C的語法...)。

在項目API組中新建一個Swift文件,名為CAWSpriteLayer+ext.swift。

打開該文件,將其替換為如下內(nèi)容:

import UIKit

extension CAWSpriteLayer{

func avgSizeForFrameBase(_ frameNameBase:String)->CGSize{

//待實現(xiàn)

}

}

可以看到我們在CAWSpriteLayer類的擴展里新建了方法,該方法唯一的參數(shù)為同一方向的紋理名稱前綴,即如果是向上,則會傳入 "w背" 實參,它會將所有"w背"前綴的紋理大小都加入計算。

我們前面已經(jīng)了解到,CAWSpriteLayer類中含有一個animationLayer.spriteData變量,其中有我們想要每一幀名稱、大小等等所需要的所有信息。

我們現(xiàn)在來實現(xiàn)avgSizeForFrameBase方法,將其中的注釋一行替換為如下內(nèi)容:

let dict = animationLayer.spriteData as! [String:CAWSpriteData]let baseNames = Array(dict.keys)let frameNames = baseNames.filter {$0.hasPrefix(frameNameBase)}var totalWidth:CGFloat = 0var totalHeight:CGFloat = 0let count = CGFloat(frameNames.count)for frameName in frameNames{ let spriteData = dict[frameName]! totalWidth += CGFloat(spriteData.spriteWidth) totalHeight += CGFloat(spriteData.spriteHeight)}return CGSize(width: totalWidth/count, height: totalHeight/count)

回到spriteSize方法,將其中的:

spriteSize = sprite.size(forFrame: "w正0")

之類的方法,換為新的平均值方法:

spriteSize = sprite.avgSizeForFrameBase("w正")

其他方向類似。

好啦!我們已經(jīng)成功的按我們的需求擴展了第三方的類!!!

結(jié)尾

經(jīng)歷了前面這么多的內(nèi)容,大家看的一定很累,這是自然的。(雖然本貓寫的也很累...),希望大家可以略微學(xué)到一丟丟新知識,希望大家可以把它應(yīng)用到實際App開發(fā)中去 _

現(xiàn)在!拋開電腦,到了happy的時候了!沖個熱水澡,來杯冰鎮(zhèn)可樂+至尊大漢堡套餐?之類的美味吧!!!

感謝觀賞,再會!

PS:全部代碼可以到我的github中下載:

https://gitee.com/hopy/iOS-JingJin/tree/master/TPSupportsTest

總結(jié)

以上是生活随笔為你收集整理的swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。