ios - 动态添加和删除视图 iOS Swift
问题描述
if count != 0 {
for i in stride(from: 0, to: Int(count!), by: 1) {
if i==0 {
let commodity = storeDetails?.storeSearchPickup.storeMaterialsDetails[i]
let balesPicked: Int = (commodity?.balesPicked)!
let balesRemaining: Int = (commodity?.balesRemaining)!
commoditySection.balepickupedlabeltext.text = String(balesPicked)
commoditySection.balesremaininglabeltext.text = String(balesRemaining)
commoditySection.commodityLabel.font = UIFont.boldSystemFont(ofSize: 16.0)
commoditySection.commodityLabel.text = commodity?.materialShortName
commoditySection.setCommodity(details: commodity!, index: Int((commodity?.materialId)!))
commoditySection.callback = self
commoditiesViewCount = commoditiesViewCount+1
print("commoditiesViewCount\(commoditiesViewCount)")
self.currentSelectedCommodity = commodity
} else {
let commodity = storeDetails?.storeSearchPickup.storeMaterialsDetails[i]
var commodityView = CommoditySection(frame:CGRect(x: 0, y: 0, width: commoditycontainer.frame.width, height: CGFloat.leastNonzeroMagnitude));
self.commoditycontainer.addSubview(commodityView)
commodityView.setCommodity(details: commodity!, index: Int((commodity?.materialId)!))
commodityView.translatesAutoresizingMaskIntoConstraints = false
commodityView.callback = self
if(currentCommodityView != nil) {
let verticalConstraint = NSLayoutConstraint(item: commodityView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.currentCommodityView, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
let leading = NSLayoutConstraint(item: commodityView, attribute: NSLayoutConstraint.Attribute.leading, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.currentCommodityView, attribute: NSLayoutConstraint.Attribute.leading, multiplier: 1, constant: 0)
let trailing = NSLayoutConstraint(item: commodityView, attribute: NSLayoutConstraint.Attribute.trailing, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.currentCommodityView, attribute: NSLayoutConstraint.Attribute.trailing, multiplier: 1, constant: 0)
NSLayoutConstraint.activate([verticalConstraint,leading,trailing])
commodityheightconstraint.constant = commodityheightconstraint.constant + commodityView.frame.height
print("commoditiesViewCount\(commoditiesViewCount)")
} else {
let verticalConstraint = NSLayoutConstraint(item: commodityView, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.commoditySection, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 0)
let leading = NSLayoutConstraint(item: commodityView, attribute: NSLayoutConstraint.Attribute.leading, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.commoditySection, attribute: NSLayoutConstraint.Attribute.leading, multiplier: 1, constant: 0)
let trailing = NSLayoutConstraint(item: commodityView, attribute: NSLayoutConstraint.Attribute.trailing, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self.commoditySection, attribute: NSLayoutConstraint.Attribute.trailing, multiplier: 1, constant: 0)
NSLayoutConstraint.activate([verticalConstraint,leading,trailing])
commodityheightconstraint.constant = commodityheightconstraint.constant + commodityView.frame.height
print("commoditiesViewCount\(commoditiesViewCount)")
}
commodityView.commodityLabel.font = UIFont.boldSystemFont(ofSize: 16.0)
commodityView.commodityLabel.text = commodity?.materialShortName
let balesPicked: Int = (commodity?.balesPicked)!
let balesRemaining: Int = (commodity?.balesRemaining)!
commodityView.balepickupedlabeltext.text = String(balesPicked)
commodityView.balesremaininglabeltext.text = String(balesRemaining)
self.currentCommodityView = commodityView;
commoditiesViewCount = commoditiesViewCount+1
print("commoditiesViewCount\(commoditiesViewCount)")
isSecondViewAdded = true
}
}
}
我是 iOS 开发的新手,但经验丰富的 Android 开发人员我有一个容器,当我添加第一个视图时它需要添加和删除视图,它正确地适合容器,当实用地在第一个视图下方添加另一个视图时,它会覆盖容器下方的另一个视图两个视图的高度都CGFloat.leastNonzeroMagnitude
需要根据包含的视图设置动态的高度
解决方案
推荐阅读
- docker - 多个 docker 镜像之间的工作项分布
- java - NetSuite 自动显示列表后无法单击下拉列表选项
- python - 对嵌入层的 mask_zero=True 使用带有 class_id 变量的召回指标
- visual-studio - 纱线不存在 - Visual Code Studio 中的终端与 Mac 中的终端不同
- hadoop - 如何计算区块链/IPFS 和 Hadoop/HDFS 的可用性?
- python - 如何在寡妇上使用来自 github 的 Python 程序
- c - 将 cgo 字符串传递给 ac struct,然后使用 ctypes in_dll 函数在 python 中检索 c struct 值
- excel - 使用自定义公式进行 VBA 验证 - 字符串变量中的公式问题
- python - 使用 *args 时出现“方法与超类型不兼容”:Any
- automation - 如何使用机器人框架处理适合移动自动化中多个页面的列表?