gpt4 book ai didi

ios - 点击附件按钮时更改 contentView

转载 作者:行者123 更新时间:2023-11-29 04:49:18 26 4
gpt4 key购买 nike

我已经对 UITableViewCell 进行了子类化显示UIImage和两个UILabel subview 。在 TableView 的 View Controller 中,在方法 cellForRowAtIndexPath: 中我已通过 setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton 启用了附件 View .

单元格显示正确。

当我点击附件公开按钮时,我想用两个不同的标签 subview 替换两个标签 subview 。我的方法如下:

  1. 在子类 UITableViewCell 中,里面layoutSubviews ,创建 CGRect s 为“备用”标签,将它们放置在相同的位置放置为两个“原始”标签并通过 setAlpha: 隐藏它们;
  2. 当点击披露按钮时,交换两个一组通过调整各自的 alpha 来标记。

问题是我无法弄清楚 layoutSubviews 中的逻辑是什么我想知道附件按钮是否已被点击。我在 View Controller accessoryButtonTappedForRowWithIndexPath: 中看到了这一点当点击该按钮时调用,从那里我似乎会调用 layoutSubviews但不知道如何利用这个事实来完成我想做的事情。

我是不是做错了?而不是隐藏/显示CGRect s 与 alpha 我应该简单地创建 UITableViewCell 的另一个子类吗? ?

最佳答案

When I tap on the accessory disclosure button I want to replace the two UILabel subviews with two different UILabel subviews.

我将执行以下操作。在 UITableViewCell 子类中创建一个公共(public)方法,如下所示:

- (void)changeContentForCell;

在此方法中,您可以根据需要设置 contentView

然后在你的 View Controller 中实现

- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
CustomCell* cCell = (CustomCell*)[tableView cellForRowAtIndexPath:indexPath];
[cCell changeContentForCell];
}

这是一个更改内容的简单示例。在我看来,您不必使用 layoutSubviews 来添加 View 。

将此逻辑保留在 changeContentForCell 中,然后调用 setNeedsLayout 来更改布局。也许您可以有一个变量来跟踪单元格的状态:正常状态或修改状态。

希望对您有所帮助。

关于ios - 点击附件按钮时更改 contentView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131218/

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