0

我正在尝试在这个项目中使用 Storyboard。我 cntrl 从一个静态 tableview 单元格拖动到一个新的 viewcontroller 选择推送。

当我运行应用程序并单击我在上一步中拖动的 tableviewcell 时,没有任何反应?

我不确定是否通过在我的 tableviewcontroller 类中放入以下方法来搞砸了。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier1 = @"Cell1";

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1];
    }

    [cell.textLabel setFont:[UIFont fontWithName:@"GothamRounded-Light" size:18]];
    cell.textLabel.backgroundColor = [UIColor clearColor];
    cell.detailTextLabel.backgroundColor = [UIColor clearColor];
    [cell.detailTextLabel setFont:[UIFont fontWithName:@"GothamRounded-Light" size:12]];
    cell.contentView.backgroundColor = [UIColor statOffWhite];

    if (indexPath.row == 0) {
        cell.textLabel.text = @"Profile";
    }
    else if (indexPath.row == 1) {
        cell.textLabel.text = @"Support";
    } 
    else if (indexPath.row == 2) {
        cell.textLabel.text = @"Share";
    }
    else if (indexPath.row == 3) {
        cell.textLabel.text = @"About";
    }
    else if (indexPath.row == 4){
        cell.textLabel.text = @"";
        cell.frame = CGRectMake(0, 0, self.view.bounds.size.width, 200);
        UIImageView *watermark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"watermark.png"]];
        watermark.frame = CGRectMake((cell.frame.size.width/2) - (watermark.image.size.width/2), 80, watermark.image.size.width, watermark.image.size.height );
        [cell addSubview:watermark];
    }

    return cell;
}

// 更新 ////////

我拿出了 cellForRowAt 方法,故事板的东西就起作用了。但是,既然我已经采用了这种方法,我如何将我的单元格上的字体设置为不在 Xcode 选择中的自定义字体?我已将字体包含在我的项目中,我在任何地方都使用它。

4

1 回答 1

0

你的实现会发生什么cellForRowAtIndexPath:是你从头开始创建单元格并覆盖故事板的单元格(因此你的 segue 没有被触发)。

如果您在情节提要中定义了静态单元格,则不应自己出列并创建单元格。如果您的类是 的子类UITableViewCellController,则可以调用的实现super并使用返回的单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];

    // Customize your cell here
}

但是请注意,这样做没有什么意义cellForRowAtIndexPath::为简单起见,您在方法中所做的所有事情都可以而且应该在情节提要中完成。

如果您确实需要以编程方式自定义静态单元格,则可以在视图控制器中定义该单元格的出口,并以适当的方法(viewDidLoad例如)自定义该单元格。

于 2013-06-16T17:40:24.070 回答