如何在目标c中创建带有标签和文本字段的自定义单元格
Posted
技术标签:
【中文标题】如何在目标c中创建带有标签和文本字段的自定义单元格【英文标题】:how to create custom cell with label & textfield in objective c 【发布时间】:2016-03-08 06:56:25 【问题描述】:我已经采取了标题让我们说的部分
星期一,星期二,星期三......星期日等。我还在部分标题后添加了“+”按钮并在该按钮上添加了操作
以下是代码和屏幕截图。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
// Return the number of sections.
return [SectionArray count];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
if (section ==0)
return 0;
else
return 3;
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
return [SectionArray objectAtIndex:section];
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
CGRect frame = tableView.frame;
UIView *headerView;
if(section == 0 || section == 7)
else
UIButton *addButton=[UIButton buttonWithType:UIButtonTypeContactAdd];
addButton.frame =CGRectMake(frame.size.width-60, 5, 50,30);
addButton.titleLabel.text = @"+";
addButton.tag =section;
// addButton.backgroundColor = [UIColor grayColor];
[addButton addTarget:self action:@selector(AddTimeSlot:) forControlEvents:UIControlEventTouchUpInside];
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(30, 10, 100, 30)];
title.text = [SectionArray objectAtIndex:section];
headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
[headerView addSubview:title];
[headerView addSubview:addButton];
return headerView;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *cellIdent = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdent];
if(cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdent];
return cell;
现在我必须在单击“+”按钮时创建单元格,所以请帮助我。
【问题讨论】:
把你的问题解释清楚。 嗨 chathurka,我在表格视图部分添加了按钮,当我单击该按钮时,我想为该特定部分添加表格单元格 【参考方案1】:你可以这样做,如下所示,
首先,您必须为将动态操作的数据源使用一个数组。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
if (section ==0)
return 0;
else
return numberOfRowNeedToDisplay; //Take global int variable
在您的按钮操作中添加时间槽:
-(void)addTimeSlot:(id)sender
//If you want to add cell to section
NSMutableArray *arrayIndexPathsToBeAdded = [[NSMutableArray alloc] init];
for (int i = 0; i < <numberOfCellsYouWantToAdd>; i++)
[arrayIndexPathsToBeAdded addObject:[NSIndexPath indexPathForRow:i inSection:view.tag]];
numberOfRowNeedToDisplay = <numberOfCellsYouWantToAdd>;
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:arrayIndexPathsToBeAdded withRowAnimation:UITableViewRowAnimationRight];
[self.tableView endUpdates];
//If you want to remove cells
NSMutableArray *arrayIndexPathsToBeRemoved = [[NSMutableArray alloc] init];
for (int i = 0; i < <numberOfCellsYouWantToRemove>; i++)
[arrayIndexPathsToBeRemoved addObject:[NSIndexPath indexPathForRow:i inSection:sectionIndexToBeExpanded]];
numberOfRowNeedToDisplay = <numberOfCellsYouWantToRemove>;
[self.tableView beginUpdates];
[self.tableView deleteRowsAtIndexPaths:arrayIndexPathsToBeRemoved withRowAnimation:UITableViewRowAnimationLeft];
这就是我所做的:
【讨论】:
【参考方案2】:请阅读评论文本。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
/** should be change in dynamically
maintain array for every section rows
return row count accordint to section
**/
#pragma mark - Private methods
- (void)AddTimeSlot:(UIButton *)sender
int sectionNo = sender.tag;
// Get you section rowArray(DATASOURCE) and insert you detaisl
// then add UI
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[tableView beginUpdates];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
[tableView endUpdates];
【讨论】:
以上是关于如何在目标c中创建带有标签和文本字段的自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章
从多节 UITableView 中的自定义静态单元格中检索标签文本
我想从数组中 UITableviewCell 的文本字段中添加字符串
根据 JSON 文件中的内容文本调整带有 UILabel 的自定义单元格的大小