5

似乎 XCode 6 在使用 viewwithtags 方面与 XCode 5 不同。

我在带有情节提要的 XCode 6 中使用以下代码。创建了 50 个单元格,但标签不可见。所有内容都设置正确,如标签等。如果我使用“旧”XCode 5 方式对 Register 单元格进行分类,它似乎适用于 iOS 7,但在 iOS 8 中数据在我开始滚动之前不会传递给标签。

static NSString * const reuseIdentifier = @"MyCell";

- (void)viewDidLoad {
    [super viewDidLoad];

    // Register cell classes
    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];

}

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return 50;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];

    UILabel *nameLabel = (UILabel *)[cell viewWithTag:102];    
    nameLabel.text = @"Hello World";
    nameLabel.textColor = [UIColor whiteColor];

    cell.backgroundColor = [UIColor blueColor];

    return cell;
}

更新了答案,但在 iOS 8 下,第一个单元格不会显示内容。只有在上下滚动后,内容才会加载到标签中。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *identifier = @"Cell";

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    UILabel *nameLabel = (UILabel *)[cell viewWithTag:102];    
    nameLabel.text = @"Hello World";
    nameLabel.textColor = [UIColor whiteColor];

    cell.backgroundColor = [UIColor blueColor];

    return cell;
}

截图在这里:

https://www.dropbox.com/s/xs6gbvz3d04e4hv/Bildschirmfoto%202014-09-21%20um%2023.08.18.png?dl=0 https://www.dropbox.com/s/tp67rznggi5pcwt/Bildschirmfoto%202014 -09-21%20um%2023.10.06.png?dl=0

4

2 回答 2

4

我找到了解决方案,就像我以前那样做。删除用于注册单元格的行并将重用标识符放在您处理单元格的位置。很抱歉我对此的回复迟了

于 2014-10-16T17:56:39.250 回答
3

我在使用 Xcode 6.3 beta 和 IOS 8 时遇到了类似的问题。我是这样解决的。首先选择视图并禁用 Storyboard 中的Size Classes。然后清理并构建应用程序。之后启用Size Classes。它现在可以工作了。

于 2015-05-22T06:34:15.423 回答