我有一個UITableView有2個自定義單元格。自定義單元格的類型由我們從Web服務獲得的關鍵字「JourneyType」定義。因此,如果旅程類型爲Solo,我們需要使用SoloCustomCell顯示單元格,如果旅程類型爲Group,則需要使用GroupCustomCell顯示單元格。我想用enum來確定分配單元的Switch情況。我已經定義枚舉這樣的:如何在Swift3中使用Enum在UITableView中分配自定義單元格?
enum SubscriptionTripType: Int {
case oneWayTrip = 1
case roundTrip
case splitShift
var value: String {
switch self {
case .oneWayTrip:
return NSLocalizedString("One way", comment: "")
case .roundTrip:
return NSLocalizedString("Round trip", comment: "")
case .splitShift:
return NSLocalizedString("Split shift", comment: "")
}
}
}
現在在cellForRowIndex我已經定義了這樣的代碼:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let subscription = mySubscriptionDetails[indexPath.row]
switch subscription.journeyType{
case 0:
let proposePoolcell = tableView.dequeueReusableCell(withIdentifier: "subscriptionCell", for: indexPath) as? MySubscriptionCustomCell
configure(cell: proposePoolcell!, forRowAtIndexPath: indexPath)
return proposePoolcell!
case 1:
let splitShiftCell = tableView.dequeueReusableCell(withIdentifier: "splitShiftCell", for: indexPath) as? SplitShiftSubscriptionCell
return splitShiftCell!
default:break
}
}
Subscription.journeyType是我們從Web服務所獲得的價值。當前訂閱數組包含8個元素,每個元素具有journeyType。所以我們需要根據上面定義的枚舉來檢查案例。如何根據Enum爲特定的旅程類型填充單元格。
你的問題是什麼?發生什麼事?爲什麼在你的csee中使用關聯int值而不是枚舉值?你問如何將int從Web服務轉換爲枚舉值?如果是這樣,請使用rawValue – Paulw11
@ Paulw11請參閱我從webservice獲取Journey Type的值爲「單向」。所以我需要檢查值是否是單向我應該放置「單向」的另一個單元格的自定義單元格。 –
你問的是如何初始化一個字符串rawValue的枚舉值?你有沒有閱讀Swift Book中關於枚舉的章節? – Paulw11