扩展RATreeView的子视图位置

时间:2016-12-14 12:07:21

标签: ios expandablelistview

我正在开发一个使用RATreeView的项目。我成功了  实施了它。但我的问题是,当我扩展细胞时,我的孩子细胞第一次显示不正常。第二次点击后,它显示完美。

请访问this以获得更好的信息。

这是我自定义tableview单元格的代码

func setup(title: String, icon: UIImage, level : Int,isChild:Bool) {
        self.title.text = title
        self.icon.image = icon

        if isChild{
            let left = 50.0 + 20.0 * CGFloat(level)

            let tFrame = self.title.frame
            let iFrame = self.icon.frame

            self.title.frame = CGRectMake(left, tFrame.origin.y, tFrame.width, tFrame.height)
            self.icon.frame = CGRectMake(left-25, iFrame.origin.y, iFrame.width, iFrame.height)


        }
    }

这是每个单元格的代码

func treeView(treeView: RATreeView, cellForItem item: AnyObject?) -> UITableViewCell {
        let cell = treeView.dequeueReusableCellWithIdentifier("TreeCell") as! TreeTableViewCell
        let item = item as! ExpandableItems

        let level = treeView.levelForCell(cell)

        cell.setup(item.name, icon: item.icon!, level: level,isChild: item.isChildren)


        return cell
    }

请帮帮我。我还想更改单元格的默认选择颜色。

1 个答案:

答案 0 :(得分:0)

我会回答我的问题......可能对其他人有用。

我在自定义单元格类中添加了一些代码,如下所示

 var level = 0
    override func layoutSubviews() {
        super.layoutSubviews()

        if level > 0 {
            let left = 40.0 + 20.0 * CGFloat(level)

            var iFrame = self.icon.frame
            var tFrame = self.title.frame

            iFrame.origin.x = left-25
            tFrame.origin.x = left

            self.title.frame = tFrame
            self.icon.frame = iFrame
        }
    }

它对我有用