2013-04-05 29 views
16

Tôi đã tạo chế độ xem bộ sưu tập rất đơn giản cho dự án mẫu xem bộ sưu tập của Apple. Tôi có chế độ xem bộ sưu tập trong bộ điều khiển chế độ xem trong bảng phân cảnh và đặt nhãn bên trong ô xem bộ sưu tập ở phần trên cùng bên phải của chế độ xem bộ sưu tập. Tôi đã nối nó với IBOutlet trong ô tùy chỉnh của tôi. Đây là mã có liên quan:UILabel trong UICollectionViewCell tùy chỉnh luôn rỗng, không thể cập nhật văn bản

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"]; 
    ... 
} 

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    if (collectionView == self.collView) { 
     Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];  
     cell.segmentTitle.text = @"some text"; 
     cell.backgroundColor = [UIColor whiteColor]; 
     return cell; 
    } 
    return nil; 
} 

Tôi đặt điểm ngắt sau phần segmentTitle.text và phân đoạnTiêu đề luôn là rỗng. Theo đó, những gì tôi thấy trong trình mô phỏng là các ô trống màu trắng. Tôi đã bỏ lỡ cái gì?

Trả lời

41

UICollectionViewCell bên trong StoryBoard không cần registerClass, chỉ cần chọn reuseidentifier trong StoryBoard. Xóa dòng này:

// [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"]; 

Và chắc chắn rằng bạn kết nối đúng cách:

kiểu lớp -Chọn của UICollectionViewCell trong Storyboard to Cell

-Kéo UILabel vào di động và treo lên để Cell.h

-Loại nhận dạng tái sử dụng

+5

Xóa đường đăng ký và sử dụng mã định danh sử dụng lại từ bảng phân cảnh đã sửa nó. Cảm ơn! – brodney

+2

Tác phẩm này. Đôi khi có quá nhiều ma thuật trong bảng phân cảnh. –

+0

Xin lỗi bạn có ý gì khi nhập tên nhận dạng tái sử dụng? Tôi đã xóa dòng đầu tiên nhưng tôi không thể thấy bất kỳ điều gì (đã thực hiện các bước khác) – Signo

2
MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell") 

tôi loại bỏ d dòng này từ mã của tôi bây giờ nó đang hoạt động tốt ...  

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