import UIKit final class SampleTableViewCell: UITableViewCell { static let cellHeight: CGFloat = 60.0 static let reuseIdentifier: String = String(describing: SampleTableViewCell.self) private let nameLabel: UILabel = UILabel() func update(with model: String) { nameLabel.text = model } } #if DEBUG #if targetEnvironment(simulator) import SwiftUI @available(iOS 13.0, *) struct SampleTableViewCell_Previews: PreviewProvider { static var devices = ["iPhone 13 Pro Max"] static var platform: PreviewPlatform? { return SwiftUI.PreviewPlatform.iOS } static var previews: some SwiftUI.View { let height: CGFloat = SampleTableViewCell.cellHeight ForEach(devices, id: \.self) { deviceName in VStack(alignment: .center, spacing: 10) { UIViewPreview { let view = SampleTableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: SampleTableViewCell.reuseIdentifier) view.update(with: "Test") return view } .frame(minWidth: 70, maxWidth: .infinity, minHeight: height, maxHeight: height, alignment: .center) Spacer() } .previewDevice(PreviewDevice(rawValue: deviceName)) .previewDisplayName(deviceName) } } } #endif #endif