Ios 在多单元格条件下对一种单元格类型应用滚动效果

Ios 在多单元格条件下对一种单元格类型应用滚动效果,ios,xcode,swift,uitableview,Ios,Xcode,Swift,Uitableview,好的,我有两种类型的单元格,它们可以很好地加载,但是对于一种类型的单元格,我想在用户滚动时应用一些效果。我可以使用一种类型的单元格并对其应用效果,效果很好,但当我使用第二种类型的单元格时,应用程序会崩溃并出现错误 滚动功能: func scrollViewDidScroll(scrollView: UIScrollView) { let offsetY = self.tableView.contentOffset.y for cell in self.tableView.visi

好的,我有两种类型的单元格,它们可以很好地加载,但是对于一种类型的单元格,我想在用户滚动时应用一些效果。我可以使用一种类型的单元格并对其应用效果,效果很好,但当我使用第二种类型的单元格时,应用程序会崩溃并出现错误

滚动功能:

func scrollViewDidScroll(scrollView: UIScrollView) {
    let offsetY = self.tableView.contentOffset.y
    for cell in self.tableView.visibleCells as! [NormalPostTableViewCell] {
        let x = cell.postPhoto.frame.origin.x
        let w = cell.postPhoto.bounds.width
        let h = cell.postPhoto.bounds.height
        let y = ((offsetY - cell.frame.origin.y) / h) * 35
        cell.postPhoto.frame = CGRectMake(x, y, w, h)
    }
}
单元格类:
NormalPostTableViewCell
&
PostsTableViewCell

错误: 当我碰到不同类型的单元格时,错误就会发生

致命错误:NSArray元素与Swift数组元素匹配失败 类型


您已经强制向下转换到
[NormalPostTableViewCell]
,但是您已经说过您有两种不同类型的单元格-因此您得到了一条非常不言自明的异常消息。如果你将一个单元格作为另一个单元格的子类,那么你可以在cast中使用超类。@Paulw11你能在代码中使用吗?我假设你的两个单元格都是UITableViewCell子类-你可以更改,使其中一个这样做,而其他子类是第一个。或者,如果我这样做,您可以将数组强制转换更改为
[UITableViewCell]
,我得到一个错误:
UITableViewCell'没有一个名为'postPhoto'的成员
这就是为什么你真的需要将一个单元格从另一个单元格中进行子类化-然后你可以使用超类,两个单元格都将有一个
postPhoto
-也许如果你将两个单元格的类定义都添加到你的问题中,我可以帮你更多的忙,你已经强制向下转换了
[NormalPostTableViewCell]
但是您已经说过您有两种不同类型的单元格-因此您得到了非常不言自明的异常消息。如果你将一个单元格作为另一个单元格的子类,那么你可以在cast中使用超类。@Paulw11你能在代码中使用吗?我假设你的两个单元格都是UITableViewCell子类-你可以更改,使其中一个这样做,而其他子类是第一个。或者,如果我这样做,您可以将数组强制转换更改为
[UITableViewCell]
,我得到一个错误:
UITableViewCell'没有一个名为'postPhoto'的成员
这就是为什么你真的需要从一个单元格到另一个单元格的子类-然后你可以使用超类,两个单元格都将有一个
postPhoto
-也许如果你将两个单元格的类定义添加到你的问题中,我可以提供更多帮助