编辑:查看我的答案,找到一个功能正常的应用,以某种方式实现了我的目标。
我已经检查了这个并遵循了每个可用的教程 - 这一切似乎都非常简单,但我的故事板&检查员现在只允许我做以下事情:
- 向自定义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
当我选择表视图并转到检查器更改其类时,除了UITableView之外没有其他选项。试图对此进行硬编码并点击“返回”也没有任何作用。
由于结构的原因,我无法为这些单元格添加按钮 我的看法?或其他什么?
答案 0 :(得分: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文件管理自定义单元格/ tableview:http://www.appcoda.com/customize-table-view-cells-for-uitableview/
希望它对你有所帮助:)。
答案 1 :(得分:0)
您可能不希望更改表视图的类。听起来你真正想要做的就是更改一个(或多个)单元原型的类。在故事板中选择一个单元格并将其类更改为您的歌曲单元格类。
答案 2 :(得分:0)
以下是对正在发生的事情的描述,以及如何实现这一点的示例:
你有一个UIViewController子类,并添加 通过在故事板中拖放来查看表格。
然后你需要做一些额外的工作来填补a之间的空白 表视图控制器和普通视图控制器 - 声明您 符合数据源和委托协议,为其创建一个出口 在表格视图中,将插座连接到表格视图并连接 表视图的代理和数据源出口到VC。
实现三种数据源方法(节数,数量) rows和cellForRow ...)并且你已经完成了。