为什么我的UITableViewCell属性设置不正确?

时间:2013-04-14 04:15:00

标签: ios objective-c uiview uitableview

我有一个自定义UITableViewCell,它有两个UIViews(CellFront和CellBack),允许我滑动CellFront(显示CellBack)以实现类似于应用Reeder的单元格滑动效果。

但是在UITableViewController类的'cellForRowAtIndexPath方法中,当我尝试设置单元格的属性(例如标题UILabel)时,当应用程序加载UITableViewController时,单元格为空。

该属性设置如下:

UITableViewController设置cell.title,它调用UITableViewCell子类中重写的setTitle方法,并在此方法中将单元格的CellFront(UIView)标签设置为指定值。

但是如上所述,当我加载视图控制器时,什么都没有出现。

以下是相关代码:

在UITableViewController类中:

cell.preview = articleInfo.preview;

在UITableViewCell子类中:

- (void)setPreview:(NSString *)preview {
    _preview = preview;

    self.cellFront.preview.text = preview;
}

在cellFront类的initWithFrame中调用的方法:

- (void)addControlsToView {
    // Create and add article title label to view
    self.title = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, 280, 20)];
    self.title.font = [UIFont boldSystemFontOfSize:18.0f];
    self.title.textColor = [UIColor blackColor];
    self.title.backgroundColor = [UIColor clearColor];
    [self addSubview:self.title];

    self.URL = [[UILabel alloc] initWithFrame:CGRectMake(20, 35, 280, 20)];
    self.URL.font = [UIFont systemFontOfSize:16.0f];
    self.URL.textColor = [UIColor blackColor];
    self.URL.backgroundColor = [UIColor clearColor];
    [self addSubview:self.URL];

    self.preview = [[UILabel alloc] initWithFrame:CGRectMake(20, 60, 280, 20)];
    self.preview.font = [UIFont systemFontOfSize:16.0f];
    self.preview.textColor = [UIColor grayColor];
    self.preview.backgroundColor = [UIColor clearColor];
    [self addSubview:self.preview];
}

我如何创建单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = nil;

    ArticleInfo *articleInfo = [self.fetchedResultsController objectAtIndexPath:indexPath];

    // Checks if user simply added a body of text (not from a source or URL)
    if ([articleInfo.isUserAddedText isEqualToNumber:@(YES)]) {
        CellIdentifier = @"BasicArticleCell";
    }
    else {
        CellIdentifier = @"FullArticleCell";
    }

    ArticleCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    ... some less relevant further customizations, but I could return here for all intents and purposes

我到底做错了什么会导致细胞被创建得很好,但是他们没有UILabel或任何存在?

0 个答案:

没有答案