2016-04-21 2 views
0

В моем приложении я показываю календарь, и я использую представление коллекции, чтобы показывать метки для дней недели. По какой-то причине все ярлыки по-прежнему отображают по умолчанию «Ярлык» при запуске приложения. Я посмотрел на аналогичный вопрос, но это не помогло. Какие-либо предложения? Вот код для UICollectionViewCell:Ярлык в UICollectionViewCell не обновляется

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CalendarTitleCellIdentifier forIndexPath:indexPath]; 
    UILabel *label = (UILabel *)[cell viewWithTag:1]; 
    label = [[UILabel alloc] init]; 
    CGSize size = [self collectionView:collectionView layout:collectionView.collectionViewLayout sizeForItemAtIndexPath:indexPath]; 
    label.frame = CGRectMake(0, 0, size.width, size.height); 
    NSString *title = [[NSString alloc] initWithFormat:@"%@",self.weektitles[indexPath.row]]; 
    label.text = title; 
    NSLog(@"%@", label.text); 
    return cell; 
} 

FYI, у меня есть фактический ярлык, в раскадровке (в окне просмотра ячейки коллекции).

+0

попытки UILabel * метка = (UILabel *) [клетки. contentView viewWithTag: 1]; – iOS

ответ

2

Поскольку вы создаете новую метку метки UILabel. Вы пересматриваете label.text not cell label.text.

Удалить

label = [[UILabel alloc] init] 
0
  1. Создать имя UICollectionViewCell это, например, DayCell со свойством

    @property (слабый, неатомической) IBOutlet UILabel * lblName;

  2. В раскадровке изменения ячейки класса от UICollectionViewCell к DayCell также установить идентификатор, как «daycell» Теперь связать метку lblName на этикетке в раскадровке

  3. и установить метод cellForItemAtIndexPath

    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 
    static NSString *identifier = @"daycell"; 
    
    DayCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath]; 
    
    
        [cell.lblName setText:@"XYZ"]; 
    
    
    return cell; 
    } 
    

Убедитесь, что вы правильно настроили делегат и источник данных для представления коллекции.

0

Обе строки коды возвращает UILabel:

UILabel *label = (UILabel *)[cell viewWithTag:1]; 
label = [[UILabel alloc] init]; 

Последний воссоздан ярлык и он не принадлежит к UICollectionViewCell больше

+0

@NickLH, вы, кажется, удалили одну «после метки» в последней строке, которая каким-то образом негативно повлияла на содержимое этого сообщения. – NSNoob

+0

Кажется, что это происходит на вашем редактировании, так как я только менял «линию» на «строки», но я исправил ее Теперь. – NickLH

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