如果要在启用了用户交互功能的情况下将图像导入UICollectionView中,我将尝试设置产品选项,以便用户可以在将产品添加到购物车之前选择他/她喜欢的选项。
@IBOutlet weak var optionView: UIView!
optionView.translatesAutoresizingMaskIntoConstraints = false
var Y:CGFloat = -10
else if dict["type"].stringValue == "image" {
let imageOptionView = UICollectionView(frame: CGRect(x: 5, y: Y, width: self.optionView.frame.size.width - 10, height: 30))
imageOptionView.isUserInteractionEnabled = true
self.optionView.addSubview(imageOptionView)
imageOptionView.tag = 11000;
Y += 60;
let productOptionArray : JSON = JSON(dict["product_option_value"].arrayObject!)
let imagesArray:NSMutableArray = []
var internalY:CGFloat = 0
for j in 0..<productOptionArray.count {
let img = UIImageView(frame: CGRect(x: 5, y: internalY, width: imageOptionView.frame.size.width, height: 30))
let images = productOptionArray[j]["image"].stringValue
let data = NSData(contentsOf: NSURL(string: images)! as URL)
img.image = UIImage(data: data! as Data)
img.tag = j;
img.isUserInteractionEnabled = true
imageOptionView.addSubview(img)
internalY += 60;
imagesArray.add(img)
print ("Printing Images", images)
print ("Printing ImageView", imageOptionView)
print ("Printing One Image", img.image)
print ("Printing ImageArray", imagesArray)
}
由于它是子视图,因此应遵循主选项视图Y的位置。一旦我测试了应用并尝试加载产品页面,应用就会崩溃。
编辑:感谢@Sh_Khan现在发布了答案,我得到了另一个错误:
未定义UICollectionViewFlowLayout的行为,因为: 项目宽度必须小于UICollectionView的宽度 减去部分插图的左右值,减去内容 插入左右值。相关的UICollectionViewFlowLayout 实例是,并且它是 附属于;层=; contentOffset:{0, 0}; contentSize:{0,0}; AdjustedContentInset:{0,0,0,0}> 集合视图布局:。 在以下位置建立符号断点 UICollectionViewFlowLayoutBreakForInvalidSizes可以在 调试器。 *-[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewCategory:],/ BuildRoot / Library / Caches / com.apple.xbs / Sources / UIKit_Sim / UIKit-3698.54.4 / UICollectionView.m:5283中的断言失败 * 由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“无法使视图出队 类型:具有标识符catalogimage的UICollectionElementKindCell- 必须为该标识符注册一个笔尖或一个类,或者连接一个 情节提要中的原型单元格
听起来我们与通过JSON解析的另一张图片有冲突
答案 0 :(得分:1)
您需要使用此初始化器
is null
//
right join on
//
您需要在单元格中注册collectionView
union all
或者如果您的单元格带有xib,则此
left join on
此处的笔尖名称应为 ImagesCollectionViewCell.xib ,且类为 ImagesCollectionViewCell