【问题标题】:Adding buttons to custom Table View Cell under custom TableView Class在自定义 TableView 类下将按钮添加到自定义表格视图单元格
【发布时间】:2013-03-19 20:39:03
【问题描述】:

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

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

-- 向自定义 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 没有其他选项。尝试对此进行硬编码并点击“返回”也无济于事。

由于结构的原因,我无法向这些单元格添加按钮吗? 我的看法?还是别的什么?

【问题讨论】:

    标签: uitableview storyboard


    【解决方案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/

    希望对你有帮助:)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • HairOfTheDog,我已经将单元原型设置为自定义类。是否需要在 Song Cell 类中设置任何实现,以便我可以将库存对象(如 UIImageViews 或按钮/标签)拖到单元格上?我想学习如何以非编程方式执行此操作,我的项目似乎要快得多
      【解决方案3】:

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

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

      然后你需要做一些额外的工作来填补 表视图控制器和普通视图控制器 - 声明你 符合数据源和委托协议,为 表视图,将插座连接到表视图并连接 表视图的委托和数据源出口到您的 VC。

      实现三种数据源方法(节数、数 rows 和 cellForRow...) 就完成了。

      Link to Prototype

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 2018-10-11
        • 2018-02-10
        • 1970-01-01
        相关资源
        最近更新 更多