gpt4 book ai didi

iphone - 如何在编辑模式下向 UITableViewCell 添加 subview 并调整其大小?

转载 作者:太空狗 更新时间:2023-10-30 03:12:44 24 4
gpt4 key购买 nike

编辑:我开始悬赏这个,因为我正在寻找一个带有 UITableViewCell 子类 的“更干净”的解决方案,而不是弄乱UITableView 委托(delegate)和数据源。理想情况下,我想看看如何处理 UISlider 事件。谢谢!

我正在使用组样式的 UITableView 并且我有几个看起来像这样的单元格:

enter image description here

现在,当我处于编辑模式时,我想要一个 UISlider 来设置正确的 UILabel 的值,这样结果看起来像这样:

enter image description here

有人能指出我正确的方向吗?我什至不确定我是否应该通过子类化 UITableViewCell 或在 IB 中来做到这一点。代码片段将不胜感激:)

最佳答案

作为赏金的傻瓜,我坐下来做了一些实验。这是我发现的最干净的解决方案:

您将创建一个自定义单元格类。正如我从您的帖子中读到的那样,您对此没有任何问题,我相信这确实是唯一的方法。

在头文件中:

@interface TableCellSlider : UITableViewCell {
UISlider *cellSlider;
}

在主文件中:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
cellSlider = [[UISlider alloc] initWithFrame:CGRectMake(200, 10, 100, 20)];
[self addSubview:cellSlider];
cellSlider.hidden = YES;
}

return self;
}

- (void)didTransitionToState:(UITableViewCellStateMask)state
{
if (self.editing) {
cellSlider.hidden = NO;
} else {
cellSlider.hidden = YES;
}
}

- (float)getValue {
return cellSlider.value;
}

至于表格和单元格高度,将其添加到表格脚本中:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[self.tableView beginUpdates];
[super setEditing:editing animated:YES];
[self.tableView endUpdates];
//[self.tableView reloadData];
}


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (self.editing) {
return 50;
} else {
return 30;
}
}

这应该可以解决问题。您可以在单元格上使用 getValue,这样您就不必合成 slider ,无论出于何种原因单元格变得可编辑,它们都会隐藏/重新出现。

祝你的项目好运:]

关于iphone - 如何在编辑模式下向 UITableViewCell 添加 subview 并调整其大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6137939/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com