使用IBOutlets对UIView进行子类化

时间:2013-05-18 13:10:44

标签: objective-c uiview uitableview iboutlet

我一直在尝试将IBOutlets添加到UIView中。 好吧,这似乎不可能。 我创建了一个名为“RecessCell”的类。 文件的所有者类是“RecessCell”,视图对象的类是RecessCell。 我创建了一个名为“betweenPeriods”的出口,一切似乎都有效。 然后,我尝试在UITableViewCell中的UIScrollView中显示自定义视图:

- (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方法中的所有者更改为单元格的原因。 好吧,猜猜怎么着? DIDNT WORK。

  

'[setValue:forUndefinedKey:]:这个类   不是密钥值编码兼容的时间段之间的密钥。'

我完全感到沮丧,你可以看到。我真的不知道问题是什么,显然不是如何解决它。

请帮忙, 谢谢。

1 个答案:

答案 0 :(得分: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;
         }