2017-02-16 8 views
0

私は、制約をプログラマブルに変更すると、出力が間違っていますが、同じ制約がストーリーボードの出力で変更された場合は、さらに画像をアップロードするのに最適です。UITableViewCellクラスのレイアウトがプログラム的に機能しない

Change of constraints programmatically and the output is smashed

Change the constraint with same constant '0' in storyboard and o/p is perfect

これは、特定のセル私のコードです:あなたはあなたの後imageView.layoutIfNeededを発射する必要が

@IBOutlet var imageView1: UIImageView! 
@IBOutlet var imageView2: UIImageView! 
@IBOutlet var imageView3: UIImageView! 
@IBOutlet var imageView4: UIImageView! 
@IBOutlet var imageView5: UIImageView! 

@IBOutlet var bttnImageCover1: UIButton! 
@IBOutlet var bttnImageCover2: UIButton! 
@IBOutlet var bttnImageCover3: UIButton! 
@IBOutlet var bttnImageCover4: UIButton! 
@IBOutlet var bttnImageCover5: UIButton! 

@IBOutlet var image1HeightCR: NSLayoutConstraint! 
@IBOutlet var image1HeightRR: NSLayoutConstraint! 
@IBOutlet var image2HeightCR: NSLayoutConstraint! 
@IBOutlet var image2HeightRR: NSLayoutConstraint! 
@IBOutlet var image3HeightCR: NSLayoutConstraint! 
@IBOutlet var image3HeightRR: NSLayoutConstraint! 
@IBOutlet var image4HeightCR: NSLayoutConstraint! 
@IBOutlet var image4HeightRR: NSLayoutConstraint! 
@IBOutlet var image5HeightCR: NSLayoutConstraint! 
@IBOutlet var image5HeightRR: NSLayoutConstraint! 

/* StoryBoard Outlets End */ 

var imagesArr    = [UIImageView]() 
var imagesConstraintsArr = [NSLayoutConstraint]() 
var imagesRRConstraintsArr = [NSLayoutConstraint]() 
var bttnCoverArr = [UIButton]() 
var totalImages  = Int() 

override func awakeFromNib() { 
    super.awakeFromNib() 
    // Initialization code 

    imagesArr  = [imageView1,imageView2,imageView3,imageView4,imageView5] 
    imagesConstraintsArr = [image1HeightCR,image2HeightCR,image3HeightCR,image4HeightCR,image5HeightCR] 
    imagesRRConstraintsArr = [image1HeightRR,image2HeightRR,image3HeightRR,image4HeightRR,image5HeightRR] 

    bttnCoverArr   = [bttnImageCover1,bttnImageCover2,bttnImageCover3,bttnImageCover4,bttnImageCover5] 

} 

override func setSelected(_ selected: Bool, animated: Bool) { 
    super.setSelected(selected, animated: animated) 

    // Configure the view for the selected state 
} 

override func layoutSubviews() { 
    print("totalImages in Static cell:\(totalImages)") 
    for i in (totalImages..<imagesConstraintsArr.count){ 
     print("i:\(i)") 
     imagesConstraintsArr[i].constant = 0 **strong text**// This is the devil. I want to change it to 0 to make it disappear but it stretching his upper neighbour view. 
     imagesRRConstraintsArr[i].constant = 0 **strong text**// Another brother of devil 
    } 
} 
+0

forループの最後にlayoutIfNeeded()を入れてみます。 –

答えて

0

は、あなたがしたいことを、あなたのUIImageViewsにあなたのforループでNSLayoutConstraintを更新の制約を更新してください。

+1

ご協力いただきありがとうございます。 –

+0

@NaveenKumawat問題を解決した場合はこれを回答としてマークして、コミュニティが解決したことを確認できるようにしてください。 GL –

+1

評判が15未満であれば、私の投票は公に表示されません。 –

関連する問題