UITableViewCell 类布局无法以编程方式工作
Posted
技术标签:
【中文标题】UITableViewCell 类布局无法以编程方式工作【英文标题】:UITableViewCell Class Layout is not working programmatically 【发布时间】:2017-02-16 10:57:40 【问题描述】:我要问的是,当我以编程方式更改约束时,输出会出错,但如果故事板输出中的相同约束发生更改,则更适合我上传图片。
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
【问题讨论】:
尝试将 layoutIfNeeded() 放在 for 循环的末尾。 【参考方案1】:在您要更新约束的 UIImageViews
上更新 for 循环中的 NSLayoutConstraint
后,您需要触发 imageView.layoutIfNeeded
。
【讨论】:
感谢您的帮助。 @NaveenKumawat 没问题,如果它解决了您的问题,请记住将其标记为答案,以便社区可以看到它已解决。总帐 声望低于 15 我的投票不会公开显示。以上是关于UITableViewCell 类布局无法以编程方式工作的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式在 UITableViewCell 中添加自定义视图?
使用锚以编程方式设置 UITableViewCell 的布局
如何在标准 UITableViewCell 中以编程方式自动布局右侧的自定义 UIButton。
我在自定义 UITableViewCell 中以编程方式设置布局约束时遇到问题