【发布时间】:2013-12-19 16:27:23
【问题描述】:
我们有一个UICollectionView,它在故事板上有一个原型单元。该单元格中有一个UILabel ("label"),它在没有自动布局的情况下定位。
我们有条件地在-collectionView:cellForItemAtIndexPath: 中使用 setFrame 设置标签的框架,如下所示:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CategoryCell *cell;
cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Category" forIndexPath:indexPath];
...
if (self.isViewTypeList) {
[((CategoryCell *)cell).label setFrame:FRAME_RECT];
}
...
return cell;
}
我们已经对其进行了检查,似乎首先它在到达出队时使用 Storyboard 值调用标签的 -setFrame:,然后我们的代码如下,这将正确设置新帧。除了这些之外,没有其他调用,但标签仍保留在屏幕上的原始位置。
怎么了?为什么新框架设置不正确?是否有其他东西压倒它?我是否必须以某种方式重新布局或刷新它?
【问题讨论】:
标签: ios objective-c uicollectionview frame