首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标签不显示在UITableView的子视图中

标签不显示在UITableView的子视图中
EN

Stack Overflow用户
提问于 2017-04-03 07:47:39
回答 2查看 67关注 0票数 0

我正在设计一个iOS汉堡包菜单,在swift3中有一个桌面视图

我想在菜单选项卡中显示通知的数量。

代码语言:javascript
复制
 let pieNotifi = UIImageView(frame: CGRectMake(cell.contentView.frame.size.width-40, cell.contentView.frame.size.height/2-7, 30, 20))
            let pieLabNotifi = UILabel(frame: CGRectMake(cell.contentView.frame.size.width-40, cell.contentView.frame.size.height/2-7, 30, 20))

            let subviews = self.view.viewWithTag(100001)
            if myGlobal.unreaddot != 0 {     //just a count for notifcaiton
                if subviews == nil {

                    pieNotifi.tag = 100001;
                    cell.addSubview(pieNotifi)
                    let pieShape = pieNotifi.layer;
                    pieShape.backgroundColor = UIColor.red.cgColor
                    pieShape.cornerRadius = pieShape.bounds.width / 4

                    pieLabNotifi.textColor = UIColor.white
                    pieLabNotifi.adjustsFontSizeToFitWidth = true;
                    pieLabNotifi.minimumScaleFactor = 0.5
                    pieLabNotifi.textAlignment = NSTextAlignment.center
                    pieNotifi.addSubview(pieLabNotifi)
                    pieLabNotifi.text = String(myGlobal.unreaddot)

                }
                else{
                    pieLabNotifi.text = String(myGlobal.unreaddot)
                }

            }else{
                let subviews = cell.viewWithTag(100001)
                subviews?.removeFromSuperview()
                print("remove red dot")
            }

然而,它只显示红色的颜色层,但没有标签。请参阅下面显示的在这里输入图像描述图片

我试过

代码语言:javascript
复制
 .sendSubview(to back:)
 .bringSubview(toFront: )
 .layer.zPosition = 1

所有这些关键词对我都没用。

有人能建议我解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-03 09:20:46

我认为问题在于你的标签的立场。您将标签x坐标设为cell.contentView.framework. inside 40,但您希望将其添加到红色图像视图中。将标签的x位置和y位置更改为0(或任何您需要的值)将解决问题。我已相应地修改了您的代码:

设pieNotifi =UIImageView(框架:pieNotifi#en0#.contentView.framework.frame.frame/2-7,30,20)让pieLabNotifi =UILabel(框架: CGRectMake(0,0,30,20))

代码语言:javascript
复制
        let subviews = self.view.viewWithTag(100001)
        if myGlobal.unreaddot != 0 {     //just a count for notifcaiton
            if subviews == nil {

                pieNotifi.tag = 100001;
                cell.addSubview(pieNotifi)
                let pieShape = pieNotifi.layer;
                pieShape.backgroundColor = UIColor.red.cgColor
                pieShape.cornerRadius = pieShape.bounds.width / 4

                pieLabNotifi.textColor = UIColor.white
                pieLabNotifi.adjustsFontSizeToFitWidth = true;
                pieLabNotifi.minimumScaleFactor = 0.5
                pieLabNotifi.textAlignment = NSTextAlignment.center
                pieNotifi.addSubview(pieLabNotifi)
                pieLabNotifi.text = String(myGlobal.unreaddot)

            }
            else{
                pieLabNotifi.text = String(myGlobal.unreaddot)
            }

        }else{
            let subviews = cell.viewWithTag(100001)
            subviews?.removeFromSuperview()
            print("remove red dot")
        }

同时,尝试在UiDebugger中查看您的标签位置,您可能会发现标签添加到了错误的位置。

票数 0
EN

Stack Overflow用户

发布于 2017-04-03 08:29:20

您没有向UITableView添加子视图。根据您的代码,您将向UITableView的单元格添加一个子视图。尝试将子视图添加到单元格的content视图中,例如:

代码语言:javascript
复制
    cell.contentView.addSubView(pieNotifi)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43179203

复制
相关文章

相似问题

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