iOS:一个视图中的多个原型单元格会产生偏差结果

时间:2015-01-29 15:42:39

标签: ios objective-c uitableview swift

在我的故事板中,我有4个不同的原型单元,每个原型单元属于不同的卡片#34;在时间轴视图控制器上,如下图所示:

enter image description here

已经设置了适当的约束,但是当时间线加载到设备上时,"卡"如下图所示,叠加在一起:

enter image description here

我一直试图找到这个问题的根源已有一段时间了,但我真的不明白是什么导致布局如此严重失效。

作为参考,我正在使用下面的代码加载我的卡片(我已经删除了设置Outlets值的非必要代码)

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var count = posts.count
    var cell: UITableViewCell!

    // Get the post we are currently on
    let p = posts[indexPath.row] as Post

    // Build the overview cell
    if indexPath.row == 0 {
        let userCell = tableView.dequeueReusableCellWithIdentifier("UserCardCell", forIndexPath: indexPath) as UserCardCell

        // outlet setting code here

        cell = userCell
    }
    // Handle other cell types
    else
    {
        if posts[indexPath.row].getType() == PostType.MEDIA
        {
            let mediaCell = tableView.dequeueReusableCellWithIdentifier("MediaCardCell", forIndexPath: indexPath) as MediaCardCell

            // outlet setting code here

            cell = mediaCell
        }

        if posts[indexPath.row].getType() == PostType.TEXT
        {
            let textCell = tableView.dequeueReusableCellWithIdentifier("TextCardCell", forIndexPath: indexPath) as TextCardCell

            // outlet setting code here

            cell = textCell
        }

        if posts[indexPath.row].getType() == PostType.VERSUS
        {
            let versusCell = tableView.dequeueReusableCellWithIdentifier("VersusCardCell", forIndexPath: indexPath) as VersusCardCell

            // outlet setting code here

            cell = versusCell
        }
    }

    return cell
}

对于我可能做错的任何建议都将不胜感激。

0 个答案:

没有答案