5

Dường như XCode 6 khác với việc sử dụng thẻ viewwithtags thì XCode 5 là.XCode 6 Chế độ xem UICollectionviewvới thẻ không hoạt động

Tôi đang sử dụng mã sau trong XCode 6 với Bảng phân cảnh. 50 ô được tạo nhưng nhãn không hiển thị. Mọi thứ được đặt chính xác như thẻ, v.v. Nếu tôi sử dụng cách XCode 5 "cũ" để làm điều đó với ô Đăng ký được phân loại, có vẻ như hoạt động cho iOS 7 nhưng trong iOS 8 dữ liệu không được chuyển đến nhãn cho đến khi tôi bắt đầu cuộn.

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

Cập nhật câu trả lời vì thao tác này nhưng dưới iOS 8 ô đầu tiên sẽ không hiển thị nội dung. Chỉ sau khi cuộn lên và xuống nội dung đang tải lên nhãn.

- (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; 
} 

Ảnh chụp màn hình ở đây:

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

+2

Bạn không nên đăng ký lớp học nếu ô được tạo trong bảng phân cảnh (dành cho iOS 7 hoặc 8). Nếu bạn đăng ký lớp, bạn sẽ nhận được ô cơ bản mặc định. – rdelmar

+1

Cảm ơn. Tôi đã không đăng ký lớp học bây giờ nhưng vấn đề trong iOS 8 là nhãn không được cập nhật với nội dung khi collectionview được tải. Các ô bắt đầu cập nhật với nội dung khi tôi bắt đầu cuộn. – Ben

+0

@Ben, bạn có tìm thấy giải pháp không? – Yerkezhan

Trả lời

4

Tôi tìm thấy giải pháp trong thực hiện nó theo cách tương tự tôi đã làm trước đó. Loại bỏ các dòng để đăng ký các tế bào và đặt reuseIdentifier nơi bạn xử lý các tế bào. Xin lỗi vì phản hồi muộn của tôi về số điện thoại

+0

Vâng, tôi đã có cùng một vấn đề Tôi nghĩ rằng nơi tôi đăng ký các tế bào lập trình mà còn thiết lập tên tế bào trong Interface Builder và điều đó đã phá vỡ mọi thứ. Đã xóa các chương trình và mọi thứ đều ổn. – TenaciousJay

+0

Tôi đã có cùng một vấn đề là tốt và giải pháp này làm việc cho tôi - Tôi không biết tại sao đây là trường hợp như selector registerForClass được bao gồm trong mã tự động tạo ra. –

3

Tôi đã gặp sự cố tương tự khi sử dụng Xcode 6.3 beta và iOS 8. Tôi đã giải quyết nó như thế này. Đầu tiên chọn chế độ xem và vô hiệu hóa các Lớp học Kích thước Kích thước trong Bảng phân cảnh. Sau đó, làm sạch và xây dựng ứng dụng. Sau đó, kích hoạt các lớp học Kích thước. Nó sẽ hoạt động ngay bây giờ.

+0

Thật kỳ lạ nhưng cũng có hiệu quả đối với tôi cũng như –

+0

Có Tôi không biết tại sao nhưng nó hoạt động –

+0

Bạn đã gửi một radar về điều này chưa? Điều này vẫn còn là một vấn đề trong Xcode 6.3.2 và tôi rất muốn lừa nó. Ngoài ra, bạn đã thử nghiệm cho dù đây là một vấn đề trong Xcode 7? – jpittman

Các vấn đề liên quan