如何像这样定制UITable:UITableView包含许多行,每行包含许多子行。使用添加按钮添加子行?
答案 0 :(得分:1)
您可以创建这样的结构
[
{
"Title": "Section 1",
"Rows": [
{
"Title": "Row 1",
"Rows": [
{
"Title": "Sub Row 1",
"Rows":[]
}
]
}
]
}
]
这是一系列词典。每个部分都有一个行数组,每行都有一个子数组。
答案 1 :(得分:0)
您可以使用分组tableview
,但它不会像您的照片中那样为您提供完整的iphone行宽。
如果你使用普通的tableview它应该给你完整的行外观,但添加加号按钮可能会变得困难。
你需要有一个源代码,让我们为每个部分行说一个数组或一个字典
对于图像使用cell.imageView.image= yourimage;
使用箭头cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
对于那个(10),您需要使用cell.accessoryView= yourcustomview
//create multiple section according to your picture it is 2
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
//return an integer here from a source,variable or just return static int
return 2;
}
//add plus button for each section
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
// Create header view and add label as a subview
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 400, 320, 400)];
//add a button to open edit
UIButton *declineButton=[UIButton buttonWithType:UIButtonTypeCustom];
[declineButton setTag:section];
declineButton.titleLabel.tag=1;
[declineButton setFrame:CGRectMake(450,50,70,40)];
[declineButton setTitle:@"Edit" forState:UIControlStateNormal];
UIImage *declinebuttonImage = [[UIImage imageNamed:@"orangeButton@2x.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 20, 20, 20)];
[declineButton setBackgroundImage:declinebuttonImage forState:UIControlStateNormal];
[declineButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[declineButton addTarget:self action:@selector(declineEvent:) forControlEvents:UIControlEventTouchUpInside];
[view addSubview:declineButton];
return view;
}
- (IBAction)declineEvent:(id)sender {
UIButton *button = (UIButton *)sender;
NSInteger row = button.tag;
NSInteger column = button.titleLabel.tag;
//NSIndexPath *selectedSection= [NSIndexPath indexPathForRow:column inSection:row];
NSLog(@"Row is %i column is %i",row,column);
//populate your source array for the section according to your needs here
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return yoursourceforthissection;
}
答案 2 :(得分:0)
我认为您应该使用具有表格视图的自定义表格视图单元格。
http://www.appcoda.com/customize-table-view-cells-for-uitableview/
检查这希望这会对你有帮助。
答案 3 :(得分:0)
我在Github上有类似的项目。 基本上它是一个带可扩展部分的UITableView。 以下步骤使我的工作:
NSMutableDictionary
,dataSource
,dict包含NSMutableArrays
作为每行的值作为键。NSMutableArray
相同尺寸的其他NSMutableDictionary
。此NSMutableArray
包含BOOL
个值,YES
表示该部分已展开,NO
表示折叠部分。在我的情况下,默认情况下折叠所有部分。
3. tableView中的部分数量是NSMutableDictionary
。NSMutableArray
的{{1}}值在某个索引路径中包含Bool
,则此部分的行数是您作为索引路径的值检索的数组的大小来自您的YES
。否则,此部分只有1行。示例:
NSMutableDictionary
只需检查出来并随意使用代码: