目前分類:iOS (238)

瀏覽方式: 標題列表 簡短摘要

由Bitbucket private repo轉換到Github private repo多次嘗試下發現是.ssh/config多git user的關係

比如說

小賢 發表在 痞客邦 留言(0) 人氣()

ChatGPT生成第1次的code再搭配blogger文章+微調

https://blog.csdn.net/weixin_41732253/article/details/104048437

小賢 發表在 痞客邦 留言(0) 人氣()

將SwiftUI 的view加到UIViewController上,

使用 UIHostingController,

小賢 發表在 痞客邦 留言(0) 人氣()

在tableView的cellForRow中設定(可以寫在含collectionView的tableViewCell裡,然後再call

    
    collectionView.reloadData() collectionViewHeight.constant = collectionView.collectionViewLayout.collectionViewContentSize.height
    

需搭配 (手動計算字型寬度,用auto cell會失準

小賢 發表在 痞客邦 留言(0) 人氣()

Github:

https://github.com/Bosian/SwiftUIPullToRefreshScrollView/tree/main

小賢 發表在 痞客邦 留言(0) 人氣()

遇到的問題:

xib建立native gogole Ad,然後被包在 UIViewrePresentable內,如果使用property或init產生instance的方式,

小賢 發表在 痞客邦 留言(0) 人氣()

建資料夾Xcode 16將預設改成folder(以前是group),
這會導致 pod install 失敗,

小賢 發表在 痞客邦 留言(0) 人氣()

[SwiftUI] Xcode 16 preview失敗解法

(1.Xcode 16 Editor > Canvas > Use Legacy Previews Execution)

小賢 發表在 痞客邦 留言(0) 人氣()

神解法記錄

---

小賢 發表在 痞客邦 留言(0) 人氣()

記錄很讚的文章

[Swift] map, compactMap平行處理

小賢 發表在 痞客邦 留言(0) 人氣()

自訂屬性包裝器(property wrapper) ,

找不到key、String, Int, Double, CGFloat 嘗試轉型,都失敗會給預設值。

小賢 發表在 痞客邦 留言(0) 人氣()

一、Mac環境設定(command line):

  1. 安裝 Homebrew

小賢 發表在 痞客邦 留言(0) 人氣()

1.修改 打包IPA參數

projectPath, projectName, scheme, infoPlist

小賢 發表在 痞客邦 留言(0) 人氣()

自訂Model to query string encoder,

在使用HttpGet protocol旳時候,

小賢 發表在 痞客邦 留言(0) 人氣()

截圖 2022-12-31 下午10.13.00

參考資料:https://juejin.cn/post/6844903846427230221

小賢 發表在 痞客邦 留言(0) 人氣()

泛型條件約束的Auto sync UserDefaults with Enum key SwiftUI property wrapper

截圖 2022-05-16 下午11.57.45

小賢 發表在 痞客邦 留言(0) 人氣()

Swift 初見 (Swift 2)

小賢 發表在 痞客邦 留言(0) 人氣()

  建立類似Windows Phone的雙向綁定型態轉換器(IValueConverter),
並搭配extension來實現預設實作,再建DateToStringConverter。

在使用的時候,

TextField("test", text: $enterDate.convert(converter: dateToStringConverter), prompt: Text("請輸入"))


            
extension Binding {
    func convert(converter: T) -> Binding where T: IValueConverter,
                                                                Value == T.Source {
        return Binding {
            return converter.convert(value: self.wrappedValue)
        } set: { (value: T.Target)  in
            do {
                self.wrappedValue = try converter.convertBack(value: value)
            } catch {
                print(String(describing: error))
            }
        }
    }
}

protocol IValueConverter {
    associatedtype Source
    associatedtype Target
    associatedtype Parameter

    var parameter: Parameter { get }
    
    func convert(value: Source) -> Target
    func convertBack(value: Target) throws -> Source
}

struct DateToStringConverter: IValueConverter {

    typealias Source = Date?
    typealias Target = String
    typealias Parameter = String

    let parameter: Parameter
    
    init(parameter: Parameter) {
        self.parameter = parameter
    }

    func convert(value: Source) -> Target {
        return value?.toString(format: parameter) ?? ""
    }
    
    func convertBack(value: Target) throws -> Source {
        guard let value = value.toDate(format: parameter) else {
            throw NSError(domain: "Can't cast from \(Source.self) to \(Target.self)", code: -1)
        }

        return value
    }
}


小賢 發表在 痞客邦 留言(0) 人氣()

NavigationParameter,可用來做頁面傳遞資料的一個封裝Model。

 

小賢 發表在 痞客邦 留言(0) 人氣()

截圖 2022-02-26 下午8.47.20

 

小賢 發表在 痞客邦 留言(0) 人氣()