UITableView在部分添加按钮

时间:2011-04-02 04:04:59

标签: ios uitableview uibutton

我是iOS编程新手。我正在构建一个课程管理系统的应用程序,该系统具有导航的桌面视图,可以在不同的课程之间导航。我想为表的每个部分添加按钮而不是有行。

例如,如果课程CS101下面有5个项目,我想要5个图标(UIButton)出现,当我点击名为CS101的标题排列成3行时,2,2和1个按钮代表五个项目。

我该怎么做呢?如果可能的话?

非常感谢! 萨特雅姆

2 个答案:

答案 0 :(得分:21)

是的,这是可能的。你需要使用UITableView的委托方法,并将View中的所有按钮添加到TableView的标题中。

首先设置代表&然后,UITableView的数据源继续使用以下代码。

为此,您可以按照以下代码:

 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
 {
 // create the parent view that will hold header Label
 UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 44.0)];

 // create the button object
 UIButton * headerBtn = [[UIButton alloc] initWithFrame:CGRectZero];
 headerBtn.backgroundColor = [UIColor clearColor];
 headerBtn.opaque = NO;
 headerBtn.frame = CGRectMake(10.0, 0.0, 100.0, 30.0);
 [headerBtn setTitle:@"<Put here whatever you want to display>" forState:UIControlEventTouchUpInside];
[headerBtn addTarget:self action:@selector(ActionEventForButton:) forControlEvents:UIControlEventTouchUpInside];
 [customView addSubview:headerBtn];

 return customView;
 }

一旦将视图添加到标题然后设置标题的高度,因为默认情况下它将是20,因此您需要根据已添加到标题的View HEight进行调整。

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
 {
 return 100.0;
 }

希望这对你有很大的帮助...... :)。

答案 1 :(得分:1)

为此,您必须在此委托中返回包含UI按钮

的UIview
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

在此按钮的操作上,您可以插入要显示为图标的行数,新插入的行将包含UIButton。要插入行,您可以使用

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation