更改视图的y位置会删除点击事件

时间:2019-07-18 06:28:07

标签: ios swift uicollectionview yaxis

  1. 我在屏幕外部设置了一个UICollectionView y位置(将其设置为与底部安全区域对齐,并且偏移了-154,因此它不在屏幕上。)

  2. 应用启动时,我使用按钮将整个根视图上移

    self.view.center.y-= 154

  3. 根视图和我的UIView都出现在预期的位置,但是无法点按UICollectionView。新区域无法识别UIEvent。

我向UICollectionView添加了一个手势,但是它不起作用。只有根视图区域才响应UIEvent。

@IBAction func filmRollButton(_ sender: UIButton) {
    var toUp = true

    if self.toUp == true {
        self.view.center.y -= 154
    } else {
        self.view.center.y += 154
    }
    self.toUp = !self.toUp
}

// tap - UICollection View appear(y position change)
// tap again - UICollection view disappear

预期:

  1. 使用某种方法启用UICollectionView点击事件。 (扩展根视图区域?因为只能点击根视图区域。)
  2. 其他简单的绘制效果,例如将UICollectionView的高度设置为0,然后点击按钮并将高度设置为154。

1 个答案:

答案 0 :(得分:0)

尝试使用 layoutIfNeeded()来立即布局子视图。可能正在等待

 @IBAction func filmRollButton(_ sender: UIButton) {
  var toUp = true

  if self.toUp == true {
     self.view.center.y -= 154
     self.view.layoutIfNeeded()
   } else {
     self.view.layoutIfNeeded()
     self.view.center.y += 154
   }
     self.toUp = !self.toUp
}

    // tap - UICollection View appear(y position change)
    // tap again - UICollection view disappear