我几周来一直在努力解决这个问题,但仍未找到一个解决方案。没有人真的给我答案,也没有发现任何有助于我的问题的答案。
当更改单元格内容的颜色,位置等时,其他具有相同indexPath的单元格也会被修改。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object{
static NSString *simpleTableIdentifier = @"cell";
self.cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (self.cell == nil) {
self.cell = [[SearchCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}
这就是我创建单元格的方式。帮助..!
修改
这是在每个单元格中实现的滑出视图。当您在单元格上向右滑动时,它会从左侧显示,但即使只修改了所选单元格的内容,也会出现其他几个单元格的滑出菜单。
这是我在自定义单元格类中实现滑出菜单的方法。
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self.optionView = [[OptionView alloc]initWithFrame:CGRectMake(0, 0, self.contentView.frame.size.width , self.contentView.frame.size.width)];
self.optionView.delegate = self;
[self.contentView addSubview: self.optionView];
OptionView'委托 - 向右滑动时调用
-(void)handleGesture:(UISwipeGestureRecognizer*)shouldOpenMenu{
POPSpringAnimation *anim = [POPSpringAnimation animation];
anim.property = [POPAnimatableProperty propertyWithName:kPOPViewFrame];
anim.toValue = [NSValue valueWithCGRect:CGRectMake(-self.frame.size.width/4, 0, self.optionView0.frame.size.width, self.optionView0.frame.size.height)];
anim.springBounciness = 11;
anim.springSpeed = 5;
[self.optionView0.layer pop_addAnimation:anim forKey:@"spring0"];
答案 0 :(得分:0)
首先,每个tableview单元格都有不同的索引路径。
第二,您永远不想在类级别属性中保存单元格。在本地创建它们并从cellForIndexPath:
返回。您的表视图将处理其上的单元格。
第三,非常重要的是,细胞会被重复使用。因此,您应该在使用之前重置单元格。例如,如果在某些条件下将单元格颜色设置为红色,然后将表格向下移动,则会丢弃此单元格,并通过重新使用丢弃的单元格来呈现新单元格。如果您没有为该行设置单元格颜色,则需要重置单元格颜色以清除。
遵循这些规则,您应该能够解决问题。