简体   繁体   中英

UITableViewCell Class Layout is not working programmatically

What I'm asking is that when I change constraint programattically the output is coming wrong but if same constraint is changed in story board output is perfect for more I'm uploading picture.

Change of constraints programmatically and the output is smashed

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

This is my code a particular cell:

@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
    }
}

你需要火imageView.layoutIfNeeded你更新后NSLayoutConstraint在你为你的循环UIImageViews要更新的约束。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM