So I am going to custom `UITableViewCell` **selected** background view. Here what I have done:

```
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  ...

  CGRect cellFrame = [tableView rectForRowAtIndexPath:indexPath];
  CGRect selectedBackgroundFrame = cellFrame;
  UIView *selectedBackgroundView = [[UIView alloc] init];

  selectedBackgroundFrame.size.height = 5;
  [selectedBackgroundView setFrame:selectedBackgroundFrame];
  selectedBackgroundView.backgroundColor = [UIColor colorWithRed:180/255.0
                                                    green:138/255.0
                                                     blue:171/255.0
                                                    alpha:1];

  NSLog(@"%f %f %f %f",
        selectedBackgroundFrame.size.width,
        selectedBackgroundFrame.size.height,
        selectedBackgroundFrame.origin.x,
        selectedBackgroundFrame.origin.y);
  cell.selectedBackgroundView = selectedBackgroundView;

  return cell;
}

```

But the result is the **selected** background view still populates whole cell, instead of my expectation which is height 5.

It also prints the right thing `320.000000 5.000000 0.000000 0.000000`. What's wrong?