带有远程参数的自定义视图 json

custom view with parameter from a remote json

我有一个自定义视图和 VC。自定义视图中包含各种内容,其中之一是给定产品可用尺寸的标签。 :

class CustomView: UIView {

    var productSize: Array<String>
    // all other labels and stuff

    required init(size: Array<String>) {
        self.productSizes = size
        super.init(frame: .zero)
        setupView()
        setupConstraints()
    }
    
    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

另一种观点:

class CustomViewViewController: UIViewController {

    private let productDetailView = ProductDetailsView(size: [])
    let product: Product

}

我拿到产品没有任何问题,但我应该如何将可用尺寸与视图联系起来?显然那个空数组是不正确的,我应该如何将远程文件中的数据与视图初始化连接起来? 我正在考虑制作一个数组并将其与原始 table 视图中的产品本身一起推送,如下所示:

if let productsArray = self.productsArray {
    let allSizes: Array<String> = productsArray[indexPath.row].sizes?.components(separatedBy: ",") ?? []
    let customVC = CustomViewViewController(product: productsArray[indexPath.row], allSizes: allSizes)
    navigationController?.pushViewController(customVC, animated: true)
}

但我也不知道这个应该如何工作...

你可以把它变成 lazy var

lazy var productDetailView:ProductDetailsView = { 
   let res = ProductDetailsView(size:self.product.sizes?.components(separatedBy: ",") ?? [])
   return res
}()

1- var productDetailView:ProductDetailsView!

2- 里面 viewDidLoad

productDetailView = ProductDetailsView(size:self.product.sizes?.components(separatedBy: ",") ?? [])