gpt4 book ai didi

ios - 从回收的 UITableViewCell 中删除强属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:28:47 25 4
gpt4 key购买 nike

我在我的 View Controller 中声明了一个属性:

@property (nonatomic, strong) UISegmentedViewController *segmentedControl;

我有一个 TableView ,我通过以下方式将 segmentedControl 添加到第一个单元格:

self.segmentedControl.frame = CGRectMake(10, 10, cell.frame.size.width - 20, 30);
self.segmentedControl.selectedSegmentIndex = self.segment;

[cell addSubview:self.segmentedControl];

我只希望在第一个 View 中使用此控件,自然地,它会在我使单元格出队时被回收。如何从后续单元格中删除 segmentedControl?我无法调用 [self.segmentedControl removeFromSuperView],因为这会将它从第一个单元格中删除。

注意:我必须将它声明为一个属性,这样我才能从委托(delegate)方法中引用它。

最佳答案

最好的做法是不要通过移除/添加控件来移动控件。但是要把它放在静态单元格中。

这很容易实现。只需像这样声明您的单元格即可:

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:... reuseIdentifier:nil
self.segmentedControl.frame = CGRectMake(10, 10, cell.frame.size.width - 20, 30);
self.segmentedControl.selectedSegmentIndex = self.segment;

[cell addSubview:self.segmentedControl];

重要的部分是将 nil 放入 reuseIdentifier。

所以电池不会被回收。此外,您可以与单元格建立牢固的链接...

关于ios - 从回收的 UITableViewCell 中删除强属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21605465/

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