UITableViewCell中的Swift ScrollView不滚动

Posted

技术标签:

【中文标题】UITableViewCell中的Swift ScrollView不滚动【英文标题】:Swift ScrollView In UITableViewCell not scrolling 【发布时间】:2015-05-22 01:34:08 【问题描述】:

我是 swift 新手,正在尝试将 UIScrollview 添加到自定义 UITableViewCell。我似乎无法让滚动视图在模拟器中滚动。我已经测试了垂直和水平滚动。

这是我的自定义UITableViewCell的代码

import UIKit

class CustomTableViewCell: UITableViewCell, UIScrollViewDelegate 


@IBOutlet weak var winLoseValueLabel: UILabel!
@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var newTotalLabel: UILabel!
@IBOutlet weak var locationLabel: UILabel!
@IBOutlet weak var playersLabel: UILabel!
@IBOutlet weak var playersScrollView: UIScrollView!

    override func awakeFromNib() 
        super.awakeFromNib()
        // Initialization code
        self.playersLabel.text = nil
        //self.playersScrollView.contentSize.height = 1000
        self.playersScrollView.contentSize.width = 1000

    

    override func setSelected(selected: Bool, animated: Bool) 
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    

    func addLabelToScrollView(str : String) 
        if self.playersLabel.text == nil
            self.playersLabel.text = str
        
        else
            self.playersLabel?.text = self.playersLabel.text! + "\n\(str)"
        
    

我的 playerScrollView 插座已正确连接到我故事板中的 scrollview。据我从网上所有的教程和资源中可以看出,我应该只需要设置 contentSize 的宽度或高度(大于视图区域)就可以让它滚动,我已经在 awakeFromNib 函数中完成了。

任何想法为什么这在模拟器中不起作用?其次,理想情况下我想在表格单元格中有一个垂直滚动的滚动视图,但我认为表格视图的垂直滚动可能会干扰滚动视图,所以我将它更改为水平滚动进行测试,这也不起作用.

你能在垂直滚动的UITableView中有一个垂直的scrollview,还是表格视图滚动会干扰scrollview

【问题讨论】:

可能发生的情况是您的 UITableView 正在从您的 tableViewCells 中“窃取”触摸事件。不鼓励在 UITableViewCell 中添加 UIScrollView 的方法,因为我们有所谓的响应者链,它确定将处理平移手势的对象。这是意料之中的事情,指导方针建议避免这种情况是一件坏事。 【参考方案1】:

好吧,事实证明我的 playerLabel 上的约束,它是 playerScrollView 的子视图,是罪魁祸首,虽然我不知道为什么。我调整了标签上的约束并允许水平滚动工作。

垂直滚动仍然不起作用,所以我必须重写滚动视图中的 touchesBegan 和 touchesEnded 方法,以便我可以禁用/重新启用表格视图的滚动。

【讨论】:

以上是关于UITableViewCell中的Swift ScrollView不滚动的主要内容,如果未能解决你的问题,请参考以下文章

iOS + Swift 2:UITableViewCell 中的动态高度不适用于空视图

在嵌入在 UITableviewCell 中的 UICollectionView 中进行 Segue,Swift

从另一个视图控制器单击 uitableviewcell 后,swift 3 更改 uitableviewcell?

Swift 中的自定义 UITableViewCell 注册类

Swift 中 UITableViewCell 中的 UIScrollView

uitableviewcell中的swift uitableview,自动布局始终高度为0