【问题标题】:Collection view automatically jumps to first cell when editing another cell编辑另一个单元格时,集合视图会自动跳转到第一个单元格
【发布时间】:2017-05-19 04:48:38
【问题描述】:

我正在尝试向集合视图单元格输入文本,每当我编辑第二个单元格时,集合视图会在键盘显示时滚动到第一个单元格,这是情节提要上的设置:

这是文本编辑的代码:

func addText() {
    let textView = UITextView(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: bounds.width * 0.75, height: bounds.height * 0.75)))
    textView.center = shapeView.center
    textView.delegate = self
    textView.font = .systemFont(ofSize: 32)
    shapeView.addSubview(textView)
    imageButton.removeFromSuperview()
    textButton.removeFromSuperview()
}

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if text == "\n" {
        textView.resignFirstResponder()
        return false
    }
    return true
}

谁能告诉我为什么视图会自动滚动以及如何禁用它?

【问题讨论】:

  • 你在 textView 委托函数中有什么代码?
  • @Sam 我添加了所有功能
  • @BrightFuture 你到底想做什么?您是否在 tableCell 中使用 UITextView 并尝试在其中写入。?
  • @dahiya_boy 是的,我在集合视图单元格中添加文本并将这些文本保存到核心数据中
  • @BrightFuture 如果您有情节提要,那么为什么不从情节提要中添加 textView 而不是调用 addText。因为很容易从情节提要中维护组件。

标签: ios swift uiscrollview uicollectionview


【解决方案1】:

我发现了问题,奇怪的是,这是因为集合视图的尺寸特别大,正如您在添加的屏幕截图中看到的那样,它大于 iPhone 和 iPad 的屏幕宽度。

虽然我仍然不知道为什么会发生这种情况,但我通过将前导和尾随约束设置为view 的边缘来解决问题,而不是设置固定宽度。

感谢大家的回答!

【讨论】:

  • 经过数小时的搜索,最终得到了答案。我在 Apple TV 上的收藏视图中滚动时遇到了同样的问题,不敢相信还没有对此表示赞同,因为答案是自 2017 年以来发布的。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
相关资源
最近更新 更多