2013-05-18 2 views
0

Я уже давно пытаюсь добавить IBOutlets в UIView. Ну, это кажется невозможным. Я создал класс под названием «RecessCell». Класс владельца файла - «RecessCell», а класс объекта представления - это RecessCell. Я создал выход под названием «betweenPeriods», и все, кажется, работает. Затем я попытался показать настраиваемое представление в UIScrollView внутри UITableViewCell:Подклассификация UIView с IBOutlets

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    RecessCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Recess"]; 
    if(cell == nil) cell = (RecessCell *)[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Recess"]; 

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 1, 320, 50)]; 
    scrollView.showsHorizontalScrollIndicator = NO; 
    scrollView.bounces = NO; 
    scrollView.pagingEnabled = YES; 

    scrollView.contentSize = CGSizeMake(640, 50); 
    [scrollView addSubview:[[[NSBundle mainBundle] loadNibNamed:@"RecessCell" owner:self options:nil] objectAtIndex:0]]; 
    [cell addSubview:scrollView]; 
    return (UITableViewCell *)cell; 
} 

Конечно, это не сработало. Каждый раз, когда я загружаю XIB я получаю досадную ошибку во время выполнения, что снова и снова заставляет меня хотеть, чтобы убить себя:

«[SetValue: forUndefinedKey]: этот класс не значение ключа кодирования-совместимый для ключа между периодами. ' Хотя SetupRecess - это класс UIViewController. SetupRecess не должен иметь розетки для промежутков между точками - RecessCell.

Вот почему я попытался сменить владельца в методе loadNib на ячейку. Ну, угадайте, что? ДЕСЯТЬ РАБОТА.

'[SetValue: forUndefinedKey]: этот класс не значение ключа кодирования совместимый для ключевых betweenPeriods.

Я полностью расстроен, как вы можете видеть. Я действительно не знаю, в чем проблема, и, очевидно, не как это исправить.

Пожалуйста, помогите, спасибо.

+3

Вы используете специальный класс RecessCell, но вы назначаете и запускаете UITableViewCell. Недостаточно бросать в класс, вам действительно нужно создать объект этого класса. – Abizern

+1

Это также говорит вам, что 'betweenPeriods' не является свойством, совместимым с KVC. – Abizern

+0

@Abizern 2-е утверждение является лишь частично истинным, т. Е. Реальная проблема - это то, что вы объяснили в # 1. –

ответ

0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     RecessCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Recess"]; 
     if(cell == nil) { 

       NSArray *nib=[[NSBundle mainBundle] loadNibNamed:@"RecessCell" owner:self options:nil]; 
       cell=[nib objectAtIndex:0]; 
       cell.showsReorderControl=NO; 
       cell.selectionStyle=UITableViewCellSelectionStyleNone; 
       cell.backgroundColor=[UIColor clearColor]; 
      } 
      UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 1, 320, 50)]; 
      scrollView.showsHorizontalScrollIndicator = NO; 
      scrollView.bounces = NO; 
      scrollView.pagingEnabled = YES; 

      scrollView.contentSize = CGSizeMake(640, 50); 
      [scrollView addSubview:[[[NSBundle mainBundle] loadNibNamed:@"RecessCell" owner:self options:nil] objectAtIndex:0]]; 
      [cell addSubview:scrollView]; 

      return cell; 
     } 
Смежные вопросы