2012-12-03 6 views
1

У меня есть UILabel с объектом UICollectionViewCell.UILabel не отображается в UICollectionView

@interface TideDataTableCell : UICollectionViewCell 

@property (strong, nonatomic) NSString* dayString; 
@property (weak, nonatomic) IBOutlet UILabel *dayLabel; 

@end 

Метка синтезируется в файле m для объекта ячейки. Когда я пытаюсь назначить свойство текста, объект ярлыка всегда равен нулю. Даже создание нового ярлыка и присвоение его ячейке dayLabel не работает! Код ниже только прямое назначение на этикетку, как представляется, ничего не работает ...

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Main Tide Data Table Cell"; 

    TideDataTableCell* tideDayDataCell = [self.tideDataTable dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; 
    tidalDate* tideDate = self.tidalDates[indexPath.row]; 
    self.tideDataTable.backgroundColor = [UIColor lightGrayColor]; 
    tideDayDataCell.backgroundColor = [UIColor whiteColor]; 
    tideDayDataCell.dayLabel.textColor = [UIColor blackColor]; 
    tideDayDataCell.dayLabel.text = tideDate.dateString; 
    return tideDayDataCell; 
} 

Почему это не работает ?! Я проверил, что метка в UICollectionViewCell подключен к dayLabel в файле ячейки ч (выше)

+0

Вы пробовали сделать dayLabel сильным или сохранить? Может быть, он освобождается, прежде чем повторно использовать ячейку, поскольку это слабое свойство. –

+0

Привет, я ... Я просто попытался сделать его сильным и сохранить - но он все равно не работает ... – HillInHarwich

+0

OK ... Я сделал некоторый прогресс ... Я, должно быть, сделал это неправильно раньше - я создал новый ярлык и присвоил его свойству dayLabel. Метка - хотя она больше не является нулевой до сих пор не отображается в uicollectionview – HillInHarwich

ответ

0

Вы должны зарегистрировать свою ячейку на viewDidLoad из TideDataTableCell, как это:

UINib *cellNibName = [UINib nibWithNibName:@"cellNibName" bundle:nil]; 
[self.collectionView registerNib:cellNibName forCellWithReuseIdentifier:@"cellIdentifier"]; 

Затем, в cellForItemAtIndexPath вы должны получить клетки и использовать его:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"cellIdentifier"; 

    TideDataTableCell* tideDayDataCell = [self.tideDataTable dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath]; 

    tidalDate* tideDate = self.tidalDates[indexPath.row]; 
    self.tideDataTable.backgroundColor = [UIColor lightGrayColor]; 
    tideDayDataCell.backgroundColor = [UIColor whiteColor]; 
    tideDayDataCell.dayLabel.textColor = [UIColor blackColor]; 
    tideDayDataCell.dayLabel.text = tideDate.dateString; 
    return tideDayDataCell; 
} 

не забудьте установить идентификатор повторного использования в файле XIb.

Смежные вопросы