我正在设计一个iOS汉堡包菜单,在swift3中有一个桌面视图
我想在菜单选项卡中显示通知的数量。
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")
}然而,它只显示红色的颜色层,但没有标签。请参阅下面显示的在这里输入图像描述图片
我试过
.sendSubview(to back:)
.bringSubview(toFront: )
.layer.zPosition = 1所有这些关键词对我都没用。
有人能建议我解决这个问题吗?
发布于 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))
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中查看您的标签位置,您可能会发现标签添加到了错误的位置。
发布于 2017-04-03 08:29:20
您没有向UITableView添加子视图。根据您的代码,您将向UITableView的单元格添加一个子视图。尝试将子视图添加到单元格的content视图中,例如:
cell.contentView.addSubView(pieNotifi)https://stackoverflow.com/questions/43179203
复制相似问题