首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tap在didSelectItemAt中不起作用,它不会对任何内容做出响应。有人能帮我看看这个问题吗?

Tap在didSelectItemAt中不起作用,它不会对任何内容做出响应。有人能帮我看看这个问题吗?
EN

Stack Overflow用户
提问于 2020-12-09 00:35:29
回答 1查看 77关注 0票数 0

这是我的完整代码。从另一个控制器调用MenuTableViewCell。它显示了数据和图片。但是当点击某一部分时,水龙头就不工作了。点击之后,它应该转到不同的视图控制器。所有的事情都必须通过编程来完成。

#MenuTableViewCell.swift

导入UIKit

类MenuTableViewCell: UITableViewCell,UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {

代码语言:javascript
复制
var Labeltitle: UILabel?
var colView: UICollectionView?
//屏幕宽度
let SCREEN_WIDTH = UIScreen.main.bounds.width
//屏幕高度
let SCREEN_HEIGHT = UIScreen.main.bounds.height

var arrData = ["旅游英语","商务英语","基础英语","成人英语","少儿英语","青少英语","视频","师资"]

var collectionViewHeight: NSLayoutConstraint?

override func awakeFromNib() {
    super.awakeFromNib()


}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
}

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: reuseIdentifier)
    // 设置选中cell时无高亮等效果
    self.selectionStyle = .none

    let layout = UICollectionViewFlowLayout()
    self.colView = UICollectionView(frame: CGRect.init(x: 0, y: 0, width: SCREEN_WIDTH, height: 680), collectionViewLayout: layout);
    self.colView?.register(MenuCollectionViewCell.self, forCellWithReuseIdentifier: "colCell")
    self.colView?.delegate = self
    self.colView?.dataSource = self
    self.colView?.backgroundColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
    self.colView?.showsHorizontalScrollIndicator = true
    self.colView?.allowsSelection = true
    
    self.colView?.allowsMultipleSelection = true
    
    //设置间距
    
    //设置水平间距
    layout.minimumInteritemSpacing = 0;
    //设置垂直间距
    layout.minimumLineSpacing = 0;
    
    
    //   layout.itemSize = CGSize(width: (SCREEN_WIDTH/3), height: 125)
    layout.itemSize = CGSize(width: (SCREEN_WIDTH/2), height: 170)
    
    
    self.contentView.addSubview(colView!)

}
//加载数据
func reloadData() {
    //collectionView重新加载数据
    self.colView?.reloadData()
    //更新collectionView的高度约束
    let contentSize = self.colView?.collectionViewLayout.collectionViewContentSize
    self.collectionViewHeight?.constant = contentSize!.height
}



func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.arrData.count
}

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    
    return 1
}


func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "colCell", for: indexPath) as! MenuCollectionViewCell
    
    //self.colView?.isUserInteractionEnabled = true
    cell.title?.text = arrData[indexPath.row]
    cell.isSelected = true
    cell.contentView.isUserInteractionEnabled = false;
    
    switch indexPath.row {
    case 0:
    
        cell.imgView?.image = UIImage(named:"luyou")
        break
    case 1:
        cell.imgView?.image = UIImage(named:"shangwu")
        break
    case 2:
        cell.imgView?.image = UIImage(named:"jichu-1")
        break
    case 6:
        cell.imgView?.image = UIImage(named:"shiping")
        break
    case 4:
        cell.imgView?.image = UIImage(named:"shaoer")
        break
    case 5:
        cell.imgView?.image = UIImage(named:"qingshao")
        break
    case 3:
        cell.imgView?.image = UIImage(named:"chengren")
        break
    case 7:
        cell.imgView?.image = UIImage(named:"shiziti")
        break
    default:
         cell.imgView?.image = UIImage(named:"mainhead")
        break
    }
    
    return cell
}


func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath){

    if(network_status == 0){
        self.chrysan.show(.error, message:"没有网络", hideDelay: 1)
        return
    }

  let Publicmenu = PublicmenuViewController()

    switch indexPath.row {
    case 0:
   
        Publicmenu.menu = "旅游英语1"
        Publicmenu.menucateid = 3
        Publicmenu.menubanner = UIImage(named:"旅游英语")
    break
    case 1:
        Publicmenu.menu = "商务英语"
        Publicmenu.menucateid = 2
        Publicmenu.menubanner = UIImage(named:"商务英语")
    break;
    case 2:
        Publicmenu.menu = "基础英语"
        Publicmenu.menucateid = 9
        Publicmenu.menubanner = UIImage(named:"基础英语")
    break
    case 3:
          let Contentlist = TextbooklistViewController()
        Contentlist.menu = "成人英语"
        Contentlist.menucateid = 86
       // Publicmenu.menubanner = UIImage(named:"成人英语")
          first_ViewController()?.navigationController?.pushViewController(Contentlist, animated: true)
          return
    case 4:
         let Contentlist = TextbooklistViewController()
        Contentlist.menu = "少儿英语"
        Contentlist.menucateid = 84
       // Contentlist.menubanner = UIImage(named:"儿童英语")
        first_ViewController()?.navigationController?.pushViewController(Contentlist, animated: true)
          return
   
    case 5:
        let Contentlist = TextbooklistViewController()
        Contentlist.menu = "青少英语"
        Contentlist.menucateid = 85
      //  Publicmenu.menubanner = UIImage(named:"青少英语")
         first_ViewController()?.navigationController?.pushViewController(Contentlist, animated: true)
        return
    case 6:
      let videolist = PublicvideoViewController()
      videolist.menucateid = 39
      videolist.menu = "视频"
      videolist.menubanner = UIImage(named:"学员动态")
      first_ViewController()?.navigationController?.pushViewController(videolist, animated: true)
      return
    

    
    case 7:
        
    let teacher = TeacherViewController()
    first_ViewController()?.navigationController?.pushViewController(teacher, animated: true)
    return
    default:
        
    break
    }

    

    
    first_ViewController()?.navigationController?.pushViewController(Publicmenu, animated: true)
    
    
  //  self.navigationController?.pushViewController(tour, animated: true)
}




override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
    
    // Configure the view for the selected state
}

}

这是When I tap anyone of this section, nothing happens. didSelectItemAt does not get called.的屏幕截图

所以,当我点击图片的某一项时,点击不起作用。我尝试了设置为true或false的解决方案self.colView?.isUserInteractionEnabled。但它并没有起作用。Collectionview cellForItemAt工作。但是集合式视图didSelectItemAt不起作用。我真的不知道怎么让水龙头工作。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-13 15:25:59

在使用视图调试器进行视图调试后,我发现有了新的层UITableViewCellContent。这是在更新xcode之后出现的。用contentView.addSubview(colView!)代替self.addSubview(colView!)解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65203007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档