目前分類:iOS (238)
- Apr 10 Thu 2025 00:01
[Xcode cloud] Github (private) repo找不到branch
- Mar 29 Sat 2025 17:14
[iOS] MJRefresh + Lottie,下拉更新
ChatGPT生成第1次的code再搭配blogger文章+微調
https://blog.csdn.net/weixin_41732253/article/details/104048437
- Feb 22 Sat 2025 12:48
[SwiftUI] fix onChange not be trigger 不會被觸發
- Feb 15 Sat 2025 17:31
[Swift] CollectionView auto height in TableViewCell
在tableView的cellForRow中設定(可以寫在含collectionView的tableViewCell裡,然後再call
collectionView.reloadData() collectionViewHeight.constant = collectionView.collectionViewLayout.collectionViewContentSize.height
需搭配 (手動計算字型寬度,用auto cell會失準
- Oct 31 Thu 2024 10:37
[SwiftUI] 客製ScrollView下拉更新 pull to refresh
- Oct 17 Thu 2024 08:27
[SwiftUI] Admob 消失門(誤) 之解法
- Sep 26 Thu 2024 23:54
[Xcode 16] pod install 失敗
建資料夾Xcode 16將預設改成folder(以前是group),
這會導致 pod install 失敗,
- Sep 18 Wed 2024 21:21
[SwiftUI] Xcode 16 preview失敗解法
- Jul 24 Wed 2024 22:17
[Swift] 調整文字大小後,WKWebView變白
- Apr 21 Sun 2024 21:44
[Swift] map, compactMap平行處理
- Sep 25 Mon 2023 20:31
[Swift] Custom property wrapper for Decodable
- Aug 28 Mon 2023 15:08
[iOS] Appium 2.1.3 環境設定
- Jun 26 Mon 2023 13:09
[xcodebuild] 點2下打包ad-hoc, appstore ipa
- Mar 18 Sat 2023 21:36
[Swift] Custom Encoder
- Dec 31 Sat 2022 22:46
[Objective-C] OC的PromiseKit運用
- May 17 Tue 2022 12:23
[SwiftUI] @State sync UserDefaults
- May 12 Thu 2022 15:54
[Swift] 學習資源
Swift 初見 (Swift 2)
- May 11 Wed 2022 17:19
[SwiftUI] Binding converter (類windows phone style)
建立類似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
}
}
- Apr 14 Thu 2022 22:01
[OC & Swift 混編] NavigationParameter
- Feb 26 Sat 2022 20:47
[Objective-C] 柯里化 Curring 寫法