带有远程参数的自定义视图 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: ",") ?? [])
我有一个自定义视图和 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: ",") ?? [])