我的问题与此问题非常相似,但选择的正确答案(仅使用标签)对我来说并不起作用(也没有其他答案):Changing label position in UICollectionViewCell。
我有一个带有自定义UICollectionViewCell的UICollectionView。单元格中有一个UIView,它通过IBOutlet属性引用。我只是尝试在cellForItemAtIndexPath
方法中更改框架,并且当UIView 的框架实际上已更改时,它随后会被忽略或不被尊重。
然而,一旦UICollectionView稍微滚动并开始重用单元格,重用的单元格做就会尊重之前对UIView框架的更改,而UIView看起来就像它应该。因此,出于某种原因,第一次为特定单元格调用cellForItemAtIndexPath
时,将忽略帧更改,但是一旦重用该单元格,则会更新。
实际上,我刚才注意到的一个更奇怪的事情是,重用的单元格具有先前已更改的框架的尺寸,但保留原始的原点,碰巧是(0,0),虽然我试图将它更新为类似(0,50)的东西。
更改UIView的其他属性可以正常工作,例如更改背景颜色。可能会发生什么阻止UIView的框架最初改变?
答案 0 :(得分:-1)
UICollectionViewCell不会更新storyboard或xib文件中定义的视图的帧。
您必须在自定义单元格initWithFrame和/或awakeFromXib文件中以编程方式创建视图。
干杯!
hmmmm
我可能弄错了。我知道UITableViewCell也是如此 Cannot update UI object's frame in UITableViewCell