2017-02-16 10 views
0

То, что я прошу, заключается в том, что когда я изменяю программу ограничения, выход идет неправильно, но если такое ограничение сменяется в выводе доски, то идеально подходит для большего количества загрузки.UITableViewCell Class Layout не работает программно

Change of constraints programmatically and the output is smashed

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

Это мой код конкретной ячейки:

@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

попытайтесь установить layoutIfNeeded() в конце цикла for. –

ответ

0

Вы должны стрелять imageView.layoutIfNeeded после обновления NSLayoutConstraint в вашей цикл на вашем UIImageViews, что вы хотите обновить ограничения.

+1

Спасибо за помощь. –

+0

@NaveenKumawat Нет проблем, не забудьте отметить это как ответ, если он решит вашу проблему, чтобы сообщество могло увидеть, как она решена. GL –

+1

Менее 15 рецензий Мое голосование не будет отображаться публично. –