当我滑动UITableViewCell时,标题视图也会移动

时间:2015-07-13 00:56:09

标签: ios swift uitableview

因此,我在UITableView中有一些滑动操作,例如删除,阻止等。我想添加标题来分隔我的两个部分。所以,我添加了一个原型单元格,命名为HeaderCell,然后进入视图。我添加了一个名为headerLabe的标签。我的问题是,当我滑动操作时,标题单元格也在移动,这看起来很糟糕。我研究过,找到了一个只返回单元格的contentView的解决方案。但是,当我这样做时,标签没有显示出来。我已经尝试了十几个不同的解决方案,但没有任何工作,所以我转向了SO。谁能帮我?

 override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let headerCell : CustomHeaderTableViewCell = tableView.dequeueReusableCellWithIdentifier("HeaderCell") as! CustomHeaderTableViewCell

    if section == 0 {
        headerCell.headerLabel.text = "Thank You's"
    } else if section == 1 {
        headerCell.headerLabel.text = "Conversations"
    }

    return headerCell.contentView
}

非常感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用标题为@ozgur建议的部分。如果您仍想使用单元格。

请参阅此数据源方法

func tableView(tableView: UITableView, canEditRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    if indexPath = YourHeaderCellIndexPath{
        return false
    }
  return true
}

答案 1 :(得分:0)

检查以下方法

在你的UIViewController中使用以下

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        return 60

    }


  func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

            let  headerCell = tableView.dequeueReusableCellWithIdentifier("HeaderCell") as! WishListHeaderCell
            headerCell.lblTitle.text = cartsData.stores_Brand_Name
            let imgVw = UIImageView()
            imgVw.frame = CGRectMake(8, 18, 25, 25)
            imgVw.image = UIImage(named: "location.png")

            let title = UILabel()
            title.frame = CGRectMake(41, 10, headerCell.viwContent.frame.width - 49, 41)
            title.text = cartsData.stores_Brand_Name
            title.textColor = UIColor.whiteColor()
            headerCell.viwContent.addSubview(imgVw)
            headerCell.viwContent.addSubview(title)
            return headerCell.viwContent

        }

在您的UITableViewCell中使用以下

    import UIKit

    class HeaderCell: UITableViewCell {

         @IBOutlet weak var viwContent: UIView!
         @IBOutlet weak var imgIcn: UIImageView!
         @IBOutlet weak var lblTitle: UILabel!


        override func awakeFromNib() {
            super.awakeFromNib()
            self.viwContent.backgroundColor = UIColor.grayColor()

        }

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

            // Configure the view for the selected state
        }

    }

答案 2 :(得分:-1)

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    //UITableViewCell

    let headerCell = tableView.dequeueReusableCellWithIdentifier("headerCell") as! SecJobCCHeaderTableViewCell

    // Cell Rect
    var cellRect : CGRect = headerCell.frame
    cellRect.size.width = screenBounds.width

    // Header Footer View
    let headerFooterView = UITableViewHeaderFooterView(frame : cellRect)

    //Adding Gesture
    let swipeGestRight = UISwipeGestureRecognizer(target: self, action:#selector(AddSecJobCostCentreViewController.draggedViewRight(_:)))
    swipeGestRight.enabled = true
    swipeGestRight.direction = UISwipeGestureRecognizerDirection.Right
    headerFooterView.addGestureRecognizer(swipeGestRight)

    // Update Cell Rect
    headerCell.frame = cellRect

    // Add Cell As Subview
    headerCell.tag = 1000
    headerFooterView.addSubview(headerCell)

    // Return Header Footer View
    return headerFooterView
}

func draggedViewRight(sender:UISwipeGestureRecognizer) {

    // Swipe Gesture Action
    let currentHeaderView = sender.view?.viewWithTag(1000) as! SecJobCCHeaderTableViewCell


}