1

编辑:请参阅我的答案,了解以某种方式实现了我正在尝试做的功能的应用程序。

我已经检查了这一点并遵循了所有可用的教程——这一切看起来都很简单,但我的 Storyboard 和检查器现在只允许我执行以下操作:

-- 向自定义 UITableViewButtons 添加按钮(使用自定义类“Song Cell”)

每次我尝试这样做时,它都会将按钮放在表格视图上方的视图上。我尝试将单元格设置为动态、静态、基本以及我能找到的所有其他拨动开关。

我认为这是因为我在视图方面的设置有点尴尬,所以我也尝试将我的 TableView 设置为自定义类。但是,它没有出现在 Storyboard 的 Class Inspector 中。这是我所做的,将此表视图设置为自定义类,所以无济于事:

-- 创建继承自 UITableViewController 的自定义类,称为 SongTableViewController

-- 在 Storyboard 中,将一个表视图控制器的类设置为 SongTableViewController

请参阅此层次结构:

// 编辑 - 显然我没有 10 个代表来发布图片,所以我自己画吧:

▼ Voting View Controller - Current Songs
   ▼ View
     ▼ Table View     // This is where I would like the custom class, SongTableViewController
       > Song Cell     
       > Song Cell    //  These cells are where I would like to add the custom buttons
       > Song Cell
       > Constraints
     > Label - 00:00
     > Label - Voting will reset in:
    Navigation Item - Current Songs
First Responder
Exit

当我选择 Table View 并去检查器更改它的类时,除了 UITableView 没有其他选项。尝试对此进行硬编码并点击“返回”也无济于事。

由于我的视图结构,我无法向这些单元格添加按钮吗?或者是其他东西?

4

3 回答 3

1

也许您应该使用自定义单元格创建一个 xib。例如,带有 xib“CustomeCell.xib”的类“CustomeCell”。

您通过 xib 文件将一些对象放在您的单元格上,并使用您的 UITableView 在您的类中,执行以下操作:

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

    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        cell = [topLevelObjects objectAtIndex:0];
    }
    // configure cell 

    return cell;
}

不要忘记在 xib 文件中为您的 TableView 链接您的数据源和委托,并在您的 UITableView 类中添加委托:)

故事板很有用,但有时,最好的方法是使用 xib 文件 :)

编辑:您可以阅读本教程,这是一个很好的示例,如何使用 xib 文件管理自定义单元格/表格视图:http: //www.appcoda.com/customize-table-view-cells-for-uitableview/

希望对你有帮助:)

于 2013-03-19T20:48:23.867 回答
0

您可能不想更改表格视图的类。听起来您真正想做的是更改一个(或多个)单元原型的类。在情节提要中选择其中一个单元格并将其类更改为您的歌曲单元格类。

于 2013-03-19T20:46:07.647 回答
0

这是对正在发生的事情的描述,以及如何实现这一点的示例:

您有一个 UIViewController 子类,并通过在情节提要中拖放来将表格视图添加到其中。

然后,您需要做一些额外的工作来填补表格视图控制器和普通视图控制器之间的空白 - 声明您符合数据源和委托协议,为表格视图创建一个出口,将出口连接到表格查看表视图的委托和数据源出口并将其连接到您的 VC。

实现三个数据源方法(节数、行数和 cellForRow...),您就完成了。

链接到原型

于 2013-03-19T22:26:44.703 回答