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 注册类