2013-05-18 106 views
0

我一直在嘗試將IBOutlets添加到UIView很長一段時間。 好吧,這似乎是不可能的。 我創建了一個名爲「RecessCell」的類。 該文件的所有者的類是「RecessCell」,視圖對象的類是RecessCell。 我創建了一個名爲「betweenPeriods」的插座,一切似乎都奏效。 然後,我試圖表明在一個UITableViewCell內一個UIScrollView的自定義視圖:使用IBOutlets繼承UIView

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

當然,它沒有工作。每次我打開了廈門國際銀行,我得到了惱人的運行時錯誤,一次又一次讓我想自殺:

「[setValue方法:forUndefinedKey:]:這個類是兼容的編碼 不鍵值爲期間之間的關鍵。「 SetupRecess是UIViewController類。 SetupRecess不應該有一個間隔期 - RecessCell應該。

這就是爲什麼我試圖將loadNib方法中的所有者更改爲單元格。 那麼,猜猜看是什麼? DIDNT工作。

'[setValue:forUndefinedKey:]:該類 不是關鍵值編碼 - 間隔期間的密鑰。

我完全沮喪,你可以看到。我真的不知道有什麼問題,顯然不是如何解決問題。

請幫忙, 謝謝。

+3

您正在使用自定義類RecessCell,但是您正在分配並啓動UITableViewCell。向班級施放是不夠的,您實際上需要創建該班級的一個對象。 – Abizern

+1

它也告訴你'betweenPeriods'不是符合KVC的屬性。 – Abizern

+0

@Abizern第二個斷言只是部分真實的,真正的問題是你在#1中解釋的。 – 2013-05-18 13:34:38

回答

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