如何从 UITableViewCell 中删除按钮?
Posted
技术标签:
【中文标题】如何从 UITableViewCell 中删除按钮?【英文标题】:How to remove a button from UITableViewCell? 【发布时间】:2011-11-11 09:37:18 【问题描述】:我自定义了一个UITableViewCell
,因为我有一个UILabel
和UIButton
。我已经在layoutSubviews
方法中设置了框架,现在该表已经自定义了我在三个地方使用的UITableViewCell
,但我需要在第二位删除UIButton
。该怎么做?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
CustomPopTableViewCell *cell = (CustomPopTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[[CustomPopTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryNone;
if(tableView.tag == e_metadataView)
//cell.mCheakMarkButton.frame=CGRectZero;
cell.mTaggedTerm.text = [docInfoCollection objectAtIndex:indexPath.row];
else if(tableView.tag == e_searchSettingView)
if(indexPath.row == self.currentRow)
[cell.mcheckMarkButton removeFromSuperView];
cell.mTaggedTerm.text = [searchEngineCollection objectAtIndex:indexPath.row];
else if(tableView.tag == e_TaggedTermView)//tageed term table
TaggedItems *taggedItem = [documentData.taggedWords objectAtIndex : indexPath.row];
cell.mTaggedTerm.text = taggedItem.keyword;
if([self isTappedObjectExist:indexPath.row])
cell.accessoryType = UITableViewCellAccessoryCheckmark;
return cell;
【问题讨论】:
【参考方案1】:我会使用:
for (UIView* v in cell.subviews)
if ([v isKindOfClass:[UIButton class]])
[v removeFromSuperView];
当然,如果您在自定义单元格中具有中间级别的视图,则需要进行修改。如果您有多个按钮,我会使用标签来识别它。
【讨论】:
它是 removeFromSuperview ,"v" 很小 :)以上是关于如何从 UITableViewCell 中删除按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UITableViewCell 中的自定义 UIButton 中删除触摸延迟
如何从自定义操作中进入删除确认状态 UITableViewCell?