2017-01-22 5 views
0

テーブルビューと指定された制約(top、letf、right、bottom)とその印刷幅はすべてのデバイスで同じですが、セル幅はすべてのデバイスで異なります。 しかし、問題は、私はセル内のビューを撮影し、再び同じ(上、左、右、下)制約が与えられ、印刷時の幅がすべてのデバイスで同じであるということです。それはどのようにすることができますか?セルの幅が異なり、コンテンツビューの幅がすべてのデバイスで同じですか? 制約事項は私に説明してください。内部のセルの表示はすべてのデバイスで同じ幅ですが、セルは異なります

+0

autolayoutを使用していますか? –

+0

はいそれはストーリーボード –

+0

でマークされています私はプログラムで、セルのデフォルトのコンテンツビューに等しい幅を与えなければなりませんか? –

答えて

1

以下の画像に従ってください。 セル内で撮影したビューに自動サイズ変更の制約を使用していないことがあります。

+0

上記の画像を見てください、セルはすべてのデバイスで独自に調整されています。 –

0

enter image description here

赤色の背景で表示

は制約が与えられ、自動サイズ変更サブビューは、ストーリーボードの上にマークされています。

と、このawakeFromNib FUNC依然としてenter image description here

オーバーライド(){ super.awakeFromNib()

//Corner Radius to cell contnt view 
    view_ContentView.layer.cornerRadius = 10.0 
    view_ContentView.layer.borderColor = UIColor.lightGray.cgColor 
    view_ContentView.layer.borderWidth = 1.5 
    view_ContentView.clipsToBounds = true 
    view_SubServices.backgroundColor = UIColor.red 
    self.CreateDynamicLabelOnView(px: 2.0, view: view_SubServices, array: ["Hair Trimming" ,"Hair Color","Dry Cleaning","Boutique","Washing"],textColor:UIColor.white,backgroundColor: Common.k_Purple) 

} 

FUNCのCreateDynamicLabelOnView(PXのように示す:CGFloat、ビュー:UIViewの、配列:NSMutableArrayの、の、textColor :UIColor、backgroundColor:UIColor){

var px:CGFloat = 2.0 
    var tx:CGFloat? 


    array.enumerateObjects({ (obj, idx, stop) in 

     var width = (obj as! String).widthOfString(usingFont: UIFont(name: "Times New Roman", size: 13.0)!) 

     if width < 30.0{ 
      width = 45.0 
     } 

     print(width) 
     print(px) 
     print(view.frame.size.width) 
      tx = px + width 
     print(tx!) 
     //   if width < view.frame.size.width && tx! < view.frame.size.width { 
     if tx! < view.frame.size.width { 

      let label = UILabel(frame:CGRect(x: px, y: 2.0, width: width , height: 25.0)) 
      label.backgroundColor = backgroundColor 
      label.textColor = textColor 
      label.textAlignment = .center 
      label.font = UIFont(name: "Times New Roman", size: 12.0) 
      label.layer.cornerRadius = 9.0 
      label.text = array[idx] as? String 
      label.adjustsFontSizeToFitWidth = true 
      label.clipsToBounds = true 
      view.addSubview(label) 

      px = px + label.frame.size.width + 5 
     } 
     else{ 
      stop.pointee = true 
     } 


    }) 

} 
関連する問題