ios – Swift从TableViewCell中点击更改标签文本颜色

ios – Swift从TableViewCell中点击更改标签文本颜色,第1张

概述我有一个在TableView中的UILabel,我想在用户点击时将UILabel的颜色更改为红色.我正在使用UITapGestureRecognizer并且在点击UILabel时我可以获取UILabel的内容但是我无法获得实际的UILabel,因为据我所知,你不能在UIGesture函数中有参数. 这是我的代码,它将有助于清理 class HomeProfilePlacesCell: NSObje 我有一个在tableVIEw中的UILabel,我想在用户点击时将UILabel的颜色更改为红色.我正在使用UITapGestureRecognizer并且在点击UILabel时我可以获取UILabel的内容但是我无法获得实际的UILabel,因为据我所知,你不能在UIGesture函数中有参数.

这是我的代码,它将有助于清理

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中点击更改标签文本颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存