Ios Swift:如何将数据绑定到循环中的视图?
我想通过for循环将数据绑定到UIImageView的数组。但我不知道如何绑定像Javascript数据属性这样简单的属性。 我的想法是制作一个数组[UIImage:data]来实现这一点。 好的,我的代码有点问题: 问题:Ios Swift:如何将数据绑定到循环中的视图?,ios,swift,swift2,Ios,Swift,Swift2,我想通过for循环将数据绑定到UIImageView的数组。但我不知道如何绑定像Javascript数据属性这样简单的属性。 我的想法是制作一个数组[UIImage:data]来实现这一点。 好的,我的代码有点问题: 问题: 如何在SelectEncoration中获取其patternSelector 如何创建与循环中的数据绑定的输出?例如,如何将每个变量模式绑定到每个操作selectedocation() func selectDecoration(recognizer: UITapGestu
模式
绑定到每个操作selectedocation()
func selectDecoration(recognizer: UITapGestureRecognizer) {
print("OK")
}
let patternSelectorHeight: CGFloat = 120
var i : Int = 0
//var patternViews = [UIImageView]()
for pattern in decorationPatterns {
let patternSelector = UIImageView(image: UIImage(named: "test.jpg"))
if let p = patternSelector.image {
let proportion = p.size.width / p.size.height
let w = proportion * patternSelectorHeight
let patternX: CGFloat = (w + Conf.Size.margin) * CGFloat(i) + Conf.Size.margin
let patternOrigin = CGPoint(x: patternX, y: decorationSelectionTitleHeight)
patternSelector.userInteractionEnabled = true
patternSelector.frame = CGRect(origin: patternOrigin, size: CGSize(width: w, height: patternSelectorHeight))
patternSelector.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "selectDecoration:"))
decorationBg.addSubview(patternSelector)
decorationBg.bringSubviewToFront(patternSelector)
//patternViews.append(patternSelector)
}
i++
}
Swift中没有内置的数据绑定支持。您需要保留对
UIImageView
对象的引用,可能正如您所建议的那样,保存在一个数组中,以便以后可以更新它们
您需要设置patterSelector.userInteractionEnabled=true
,以便UITapGestureRecognizer
工作
let patterSelectorSize = CGSize(width: 80.0, height: 160.0)
var imageViews = [UIImageView]() // This probably needs to be an instance variable so you can access it outside of this function
var i : Int = 0
for _ in decorationPatterns {
let patternX: CGFloat = (patterSelectorSize.width + 10) * CGFloat(i) + 10
let patternOrigin = CGPoint(x: patternX, y: CGFloat(60))
let patterSelector = UIImageView(image: UIImage(named: "default.jpeg"))
patterSelector.frame = CGRect(origin: patternOrigin, size: patterSelectorSize)
patterSelector.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "selectDecoration:"))
patterSelector.userInteractionEnabled=true
imageViews.append(patterSelector)
decorationBg.addSubview(patterSelector)
decorationBg.bringSubviewToFront(patterSelector)
i++
}
您还必须确保decorationBg
中的userInteractionEnabled
为true
,否则触摸不会传播到您的图像视图(1)如何创建与循环中的数据绑定的输出
如果要绑定字符串数据,请尝试accessibilityLabel
property。您可以静默地设置和检索值
(2) 为什么follow中的UITapgestureRecognizer根本不工作
您没有启用UIImageView的userInteractionEnabled
希望这对您有所帮助。我添加了userInteractionEnabled=true。但仍然无法工作请启用superview的userInteractionEnabled,在您的案例中它是decorationBg。如何将数据绑定到每个patternSelector?您希望绑定哪种类型的数据?字符串?不能以本机方式绑定数据。您可以更新按钮文本。人们已经开发了一些用于数据绑定的框架,如reactivecocoa。你可以像我写的一样搜索谷歌。我测试了这段代码,它对我有效。什么是装饰BG?它是否具有userInteractionEnabled=true
?如果没有,则图像视图将不响应点击以及如何将数据绑定到每个模式选择器?