我是swift的新手,我试图制作一个特定的子视图,这是一个通过调用父集合系列中的函数来选择的collectionViewcell。
我正在调用setChosenToBeTrue()
,它在子视图中将isChosen变量设置为true,但由于一些奇怪的原因,变量的值并未真正设置?可能是什么问题?谢谢!我查看了一些通过故事板传递数据的资源,或者有一些旧的不是很快,我仍然感到困惑。
这是我的代码
在父collectioncell
中,
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let rightCell = collectionView.dequeueReusableCell(withReuseIdentifier: rightCell, for: indexPath) as! RightCell
rightCell.setChosenToBeTrue()
return rightCell
}
在子视图中
var isChosen: Bool = false
override init(frame: CGRect) {
super.init(frame: frame)
setupViews()
}
func setChosenToBeTrue() {
self.isChosen = true //function is called but setting it here,
//when it reaches setUpViews(), this boolean is still false
}
func setupViews(){
self.isChosen = true // setting it here works (obviously)
print(isChosen)
backgroundColor = UIColor.gray
}
答案 0 :(得分:0)
这很简单。 在调用setChosenToBeTrue()之前调用init()和setupViews()方法。因此,您在设置视图后更新此变量。
试试这个,例如:
var isChosen: Bool = false {
didSet {
setupViews()
}
}