更改tableview

时间:2015-05-26 06:00:09

标签: ios uitableview

我在UIView中有UITableView,我需要更改所选行中UIView的边框颜色。

我该怎么做?

UITableView cellForRowIndexPath我宣布UIView名为polygonView

UITableView didSelectRowAtIndexPath方法中,我编写了代码来更改边框颜色。

当我选择不同的行时,我还需要取消选择我的行。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:   (NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier     forIndexPath:indexPath];


    if (cell == nil)
    {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];

    }

    tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
    polygonView = [[UIView alloc] initWithFrame: CGRectMake ( 40, 10, 300, 43)];
     //polygonView.backgroundColor = [UIColor blackColor];
    UIImage *image1=[UIImage imageNamed:@"rectangle_box (2)"];
      polygonView.backgroundColor = [UIColor colorWithPatternImage:image1];
    polygonView.tag=indexPath.row;
        cell.textLabel.text=[names objectAtIndex:indexPath.row];
     [cell.contentView addSubview:polygonView];
     [cell.contentView addSubview:lbl[indexPath.row]];

    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIColor *color = [UIColor redColor];
    polygonView .layer.shadowColor = [color CGColor];
    polygonView.layer.shadowRadius = 1.0f;
    polygonView  .layer.shadowOpacity = 1;
    polygonView   .layer.shadowOffset = CGSizeZero;
}

1 个答案:

答案 0 :(得分:0)

你可以实现一个didDeselectRowAtIndexPath ...委托方法,当你选择另一行时会调用它。从该委托方法,您可以访问单元格(使用cell = tableView.cellForRowAtIndexPath:deselectedIndexPath)和多边形来更改边框颜色。