2017-02-16 4 views
0

Was ich frage ist, dass, wenn ich constraint programmatisch ändern die Ausgabe falsch ist, aber wenn gleiche Einschränkung in Storyboard-Ausgabe geändert wird, ist perfekt für mehr Ich lade Bild hoch.UITableViewCell Class Layout funktioniert nicht programmgesteuert

Change of constraints programmatically and the output is smashed

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

Dies ist mein Code eine bestimmte Zelle:

@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

versuchen Sie, layoutIfNeeded() am Ende Ihrer for-Schleife zu setzen. –

Antwort

0

Sie müssen imageView.layoutIfNeeded abzufeuern, nachdem Sie die NSLayoutConstraint in Ihrer for-Schleife auf Ihrem UIImageViews aktualisieren, die Sie wollen Aktualisieren Sie die Einschränkungen für.

+1

Vielen Dank für Ihre Hilfe. –

+0

@NaveenKumawat Kein Problem, denken Sie daran, dies als die Antwort zu markieren, wenn es Ihr Problem gelöst hat, damit die Gemeinschaft es gelöst sehen kann. GL –

+1

Weniger als 15 Ruf Meine Stimme wird nicht öffentlich angezeigt. –

Verwandte Themen