2017-09-21 43 views
0

我想在单个Tableview单元格中添加3个标签& 3个图像。 这里是我的标签&图像视图如何以编程方式在TableView单元格中添加多个UIImageView

let Namelbl:UILabel={ 
     let label=UILabel() 
     label.text="item" 
     label.translatesAutoresizingMaskIntoConstraints = false 
     return label 

    }() 
    let Namelbl2:UILabel={ 
     let label2=UILabel() 
     label2.text="item" 
     label2.translatesAutoresizingMaskIntoConstraints = false 
     return label2 

    }() 
    let Namelbl3:UILabel={ 
     let label3=UILabel() 
     label3.text="item" 
     label3.translatesAutoresizingMaskIntoConstraints = false 
     return label3 

    }() 
    let image1: UIImageView = { 
     let theImageView1 = UIImageView() 
     theImageView1.image = UIImage(named: "Masjid") 
     theImageView1.translatesAutoresizingMaskIntoConstraints = false 
     return theImageView1 
    }() 
    let image2: UIImageView = { 
     let theImageView2 = UIImageView() 
     theImageView2.image = UIImage(named: "Masjid2") 
     theImageView2.translatesAutoresizingMaskIntoConstraints = false 
     return theImageView2 
    }() 
    let image3: UIImageView = { 
     let theImageView3 = UIImageView() 
     theImageView3.image = UIImage(named: "Masjid3") 
     theImageView3.translatesAutoresizingMaskIntoConstraints = false 
     return theImageView3 
    }() 

这是我的设立观点与约束

func setupViews(){ 
    addSubview(Namelbl) 
    addSubview(Namelbl2) 
    addSubview(Namelbl3) 
    addSubview(image1) 
    addSubview(image2) 
    addSubview(image3) 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|-16-[v0]-16-[v1]-16-[v2]-16-[v3]-16-[v4]-16-[v5]-50-|",options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": Namelbl,"v1":Namelbl2,"v2":Namelbl3,"v3":image1,"v4":image2,"v5":image3])) 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": Namelbl])) 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": Namelbl2])) 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": Namelbl3])) 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": image1])) 

     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": image2])) 
     addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": image3])) 


    } 

的问题是这样的工作只是罚款3个标签&一个图像不显示功能其他两个图像

+0

*确切*问题是什么? “不显示”那些其他两个图像有点模糊。例如,你有没有设置一个断点并确定'image2'和'image3'不是零?您是否收到任何控制台反馈? – dfd

+0

是的,我已经做到了image2&image3不是零。 –

+0

这些元素的宽度是多少?似乎没有设置。 – Larme

回答

1

我建议不要在代码(*)中添加视图到您的单元格。我建议设置你的表格视图来使用自定义单元格模板。然后,您可以定义UITableViewCell的自定义一个或多个子类以及链接到图像视图的插口,并且当您使用您的特定标识符使一个单元出列时,您将获得一个正确类的单元,并且可以将插座链接并准备设置。你所要做的就是将其转换为正确的类型,然后配置它的视图。 (*)在代码中向单元格添加视图是更多的工作,并且还需要特殊处理。如果你不小心,那么每次出队时都会添加另一组视图。当您修复该问题时,您需要一些机制来访问您最初创建单元格时添加的视图,并且像使用viewWithTag(_:)这样的典型方法很脆弱。

+0

其实我正在编程的东西没有任何事情与故事板:) –

+0

这是不明智的。 –

+0

你是对的,但这是我的任务这样做:( –

相关问题