2023年6月14日
2023年6月13日
[Vue3][筆記]vue-i18n 讀取public資料夾內json file
最近做一個委託,對方需要網站有多國語系,並且他能夠自己去更新語言包內的文字而不需要透過我們再編譯。
vue-i18n可以滿足我們製作多國語系的功能,可惜網路上很少有在討論vue3+i18n+public資料讀取的資訊。
基於vue專案的設計,public資料夾是不能直接上方宣告import js、json檔案來利用的,必須透過await import/await fetch來讀取進來。(如果有搞錯請留言跟我說QQ)
這就導致了通用的vue-i18n範例是不能使用的。 以下是我搜尋後找到的方法,從vue2改寫而來! 參考的文章:VueJS 2.0 教學筆記: i18n 多語套件進階篇
vue-i18n可以滿足我們製作多國語系的功能,可惜網路上很少有在討論vue3+i18n+public資料讀取的資訊。
基於vue專案的設計,public資料夾是不能直接上方宣告import js、json檔案來利用的,必須透過await import/await fetch來讀取進來。(如果有搞錯請留言跟我說QQ)
這就導致了通用的vue-i18n範例是不能使用的。 以下是我搜尋後找到的方法,從vue2改寫而來! 參考的文章:VueJS 2.0 教學筆記: i18n 多語套件進階篇
2023年5月4日
【筆記】動態讀取cell
先獨立建立一個User interface:Empty,命名為MyInfoCell。
一開始看到會是空白一片,我們加入一個TableViewCell。
=>
接著建立Swift File,名字為InfoCell,Class名稱也是 InfoCell:
最後,在主要的class內加入delegate,然後加入這幾行:
一開始看到會是空白一片,我們加入一個TableViewCell。
=>
接著建立Swift File,名字為InfoCell,Class名稱也是 InfoCell:
class InfoCell : UITableViewCell{
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var detailLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
selectionStyle = .none
}
}
將MyInfoCell內的TableViewCell的Custom Class指向InfoCell。
最後,在主要的class內加入delegate,然後加入這幾行:
override func viewDidLoad() {
let myNib = UINib(nibName: "MyInfoCell", bundle: nil)
tableview.register(myNib, forCellReuseIdentifier: "myCell")
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableview.dequeueReusableCell(withIdentifier: "addressCell") as! InfoCell
}
2023年3月26日
2023年2月12日
Timer.scheduledTimer沒有執行
狀況:在接取API responce回來後,呼叫了Timer.scheduledTimer,但Timer.scheduledTimer似乎沒有跑⋯⋯這是為什麼呢?
原因:因為主要是沒有在main queue上執行喔~
改之前:
func startTimer(){
if self.timer == nil{
timer = Timer.scheduledTimer(timeInterval: REFRESH_DURATION_SEC, target: self, selector: #selector(endTimer), userInfo: nil, repeats: false)
}
}
改之後:
2022年12月25日
幫文字加入星號來遮罩文字
參考網址:How to mask a String to show only the last 3 characters?
extension String{
/// 幫文字加入星號來遮罩文字
/// - Parameters:
/// - startIndex: 開始遮罩的位置(含)
/// - endIndex: 結束遮罩的位置(不含),請勿超過文字長度,沒有做防呆
/// - Returns: 遮罩後文字
func maskToStarredWords(_ startIndex: Int, _ endIndex: Int) -> String{
return prefix(startIndex) + String(repeating: "*", count: Swift.min(endIndex - startIndex + 1, count)) + suffix(count - endIndex - 1)
}
}
2022年2月10日
2021年12月7日
[筆記]複數個Spine物件不同時間出現,動畫要一致
規格需求:
- 第二個Spine物件,動畫要跟第一個出現的Spine物件,動畫要一致
- Spine動畫修改animationStart時間時,會有一個先從頭開始播再直接跳到指定時間的Bug。故使用addAnimation + delay時間來控一下這個狀況。
- Spine動畫修改animationStart時間後,每次loop都會從指定的Start time開始播放,因此第一次不要Loop,等播完一次後再打開Loop。
public PlayLoopAnim(startTime: number){
if (this.isBingoTime)
return;
if (startTime > 0){
let entry: sp.spine.TrackEntry = this.spine.addAnimation(0, "Loop", false, 0.1);
entry.animationStart = startTime + 0.1; //Delay時間
this.spine.setCompleteListener(this.OnPlayLoopOnceEnd.bind(this));
}else{
this.spine.addAnimation(0, "Loop", true);
}
}
private OnPlayLoopOnceEnd(){
this.spine.setCompleteListener(null);
let entry: sp.spine.TrackEntry = this.spine.addAnimation(0, "Loop", true);
entry.animationStart = 0;
}
2021年10月27日
[筆記][Cocoscreator]2D Sprite/Label在3D模型上渲染(2.4.3)
如果要達成上圖效果,在3.0.0版本後就有cc.RenderRoot2D可以使用,直接在Label上或是Sprite上Add Component就好。詳細可以見官網!
但是3版以前的並沒有這麼支援3D的功能!
在我一番搜尋+瞎貓碰到死耗子的狀況,終於搞定了這個功能。
下收做法:
但是3版以前的並沒有這麼支援3D的功能!
在我一番搜尋+瞎貓碰到死耗子的狀況,終於搞定了這個功能。
下收做法:
2021年10月22日
訂閱:
文章 (Atom)

