iphone – UITableview的滚动改变了UIButton,UITableview滚动问题的图像

前端之家收集整理的这篇文章主要介绍了iphone – UITableview的滚动改变了UIButton,UITableview滚动问题的图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在做的是,我有一个UITableview,我添加了UIButton作为自定义视图.我给每个按钮添加标签,并在动作方法中收到标签.当我按下按钮时,它会更改所选和未选择按钮的图像,但是当我滚动它时,它将进入正常状态.

这是我在索引方法行的单元格

static NSString *CellIdentifier = @"Cell4";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [self tableviewCellWithReuseIdentifierFollowing:CellIdentifier];
}
followingButton = [UIButton buttonWithType:UIButtonTypeCustom];
[followingButton addTarget:self action:@selector(followingButtonpressed:)forControlEvents:UIControlEventTouchUpInside];
[followingButton setImage:[UIImage imageNamed:@"following12.png"] forState:UIControlStateNormal];
followingButton.frame = CGRectMake(220.0,20.0,100,40.0);
[cell.contentView addSubview:followingButton];
NSLog(@"row--%d",indexPath.row);
followingButton.tag=indexPath.row;
NSLog(@"followingButton.tag--%d",followingButton.tag);
[self configureCellFollowing:cell forIndexPath:indexPath];
return cell;
}

==================

//Here is the action method

-(void)followingButtonpressed:(id)sender
{
    NSLog(@"sender tag --%d",[sender tag]);
    UIButton *btnPly = (UIButton *)sender;
    if([btnPly isSelected])
    {
        [btnPly setSelected:NO];
        [btnPly setImage:[UIImage imageNamed:@"following12.png"] forState:UIControlStateNormal];
    }
    else
    {
        [btnPly setSelected:YES];
        [btnPly setImage:[UIImage imageNamed:@"following_off12.png"] forState:UIControlStateNormal];
    }
}

解决方法

注意:此代码为每行数据创建单元格(不重用单元格)

您只需按描述进行更改,可能对您有所帮助

NSString *CellIdentifier = [NSString stringWithFormat:@"S%1dR%1d",indexPath.section,indexPath.row];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

可能会解决你的问题:)

猜你在找的Xcode相关文章