这是我的代码,它将有助于清理
class HomeProfilePlacesCell: NSObject { var Post = [String]() @objc func PostTap(_ sender: UIGestureRecognizer) { print(Post[(sender.vIEw?.tag)!]) } func HomeProfilePlaceTVC(_ tableVIEw: UItableVIEw,cellForRowAt indexPath: IndexPath,streamsModel : streamModel,HOMEPROfile: HomeProfile,controller: UIVIEwController) -> UItableVIEwCell { let cell = tableVIEw.dequeueReusableCell(withIDentifIEr: "HomeTVC",for: indexPath) as! HomeTVC let tapGesture = UITapGestureRecognizer(target: self,action: #selector(PostTap(_:))) tapGesture.delegate = self as? UIGestureRecognizerDelegate cell.post.addGestureRecognizer(tapGesture) cell.post.text = streamsModel.posts[indexPath.row] cell.post.tag = indexPath.row Post = streamsModel.posts return cell }}
我的函数是PostTap每当用户点击UILabel即cell.post然后我可以在PostTap中读取它的内容但是为了改变那个UILabel的颜色然后我必须将let cell常量传递给PostTap函数.
无论如何我能做到这一点还是可以解决一下?我是Swift的新手
解决方法 使用tableVIEw代理:[SWIFT 4.0]func tableVIEw(tableVIEw: UItableVIEw,dIDSelectRowAtIndexPath indexPath: NSIndexPath){ let cell = tableVIEw.cellForRowAtIndexPath(indexPath) as! <your Custom Cell> cell.<your CustomCell label name>.textcolor = UIcolor.red //OR cell.<your Customcell label name>.backgroundcolor = UIcolor.green tableVIEw.reloadRowsAtIndexPaths([indexPath],withRowAnimation: UItableVIEwRowAnimation.None)}func tableVIEw(tableVIEw: UICollectionVIEw,dIDdeselectItemAtIndexPath indexPath: NSIndexPath) { let cell = tableVIEw.cellForRowAtIndexPath(indexPath) as! <your Custom Cell> // change color back to whatever it was cell.<your Customcell label name>.textcolor = UIcolor.black //OR cell.<your Customcell label name>.backgroundcolor = UIcolor.white tableVIEw.reloadRowsAtIndexPaths([indexPath],withRowAnimation: UItableVIEwRowAnimation.None)}总结
以上是内存溢出为你收集整理的ios – Swift从TableViewCell中点击更改标签文本颜色全部内容,希望文章能够帮你解决ios – Swift从TableViewCell中点击更改标签文本颜色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)