すべてのショップクラスは次のように、背景画像付きオプションのプロパティを持っている必要がありますの初:
class Shop {
...
var backgroundImage: UIImage?
...
}
のみそれらの5店舗は、残りの部分のために、背景画像を持っていますbackgroundImage = nil。
のは、お店の配列をフィルタリングし、それが順序だ再配置から始めましょう、あなたはフェッチ持っていると、サーバーからのデータをシリアライズと仮定:
今
//"fetchedShops" is array of serialized shops: [Shop]()
let shopsWithBackgroundImage = fetchedShops.filter({ $0.backgroundImg != nil })
let showWithNoImage = shops.filter({ $0.backgroundImg == nil }
let allShops = shopsWithBackgroundImage + showWithNoImage
、あなたは(XIBsとして、または2つの異なるカスタムセルを作成する必要がありますストーリーボード) - バックグラウンドとそれ以外のもの。 その後、ちょうどこのようcellForRowAtIndexPathを実装:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let shop = allShops[indexPath.row]
if shop.backgroundImage != nil {
//"shop" has background image - use custom cell with background image
let cell = tableView.dequeueReusableCell(withReuseIdentifier: cellWithBackgroundImageID, for: indexPath) as! CellWithBackground
cell.backgroundImageView.image = shop.backgroundImage
//other cell's config
return cell
}
//"shop" has no backgroundImage - let's use normal cell
let cell = tableView.dequeueReusableCell(withReuseIdentifier: normalShopCellID, for: indexPath) as! NormalShopCell
//other cell's config
return cell
}
はそれが役に立てば幸い:)
次の2つのセルを使用して使用されるべきセルをチェックするために、データの2種類のフラグを設定することができます。 –
もっと説明できますか?あなたはコードで正確に何が必要ですか? –