问题
I have added an UILabel to a custom cell's contentView. I met with a strange side effect. On the right border there is a gray edge. I don't know why. I just added an ordinary UILabel, I have done nothing else.
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
label.text = @"value1";
label.textAlignment = UITextAlignmentCenter;
[self.contentView addSubview:label];
- (void)layoutSubviews
{
UILabel *label = [self.contentView.subviews objectAtIndex:i];
label.frame = CGRectMake(…);
}

回答1:
I know this is an old question but I have just come across this exact same problem, so I thought I could help someone else looking.
For me the problem was that I had floating numbers in my frames. The following fixed it for me:
CGRectIntegral( myLabel.frame )
回答2:
I don't know the reason, but the solution is to get rid of that gray edge to set the background color of the cell to clearColor.
label.backgroundColor = [UIColor clearColor];
回答3:
First of all, you need to set:
[label setBackgroundColor:[UIColor clearColor]];
Next, set color that you want:
[label layer] setBackgroundColor:[UIColor redColor].CGColor];
回答4:
This is still happening on iOS 12.
Swift version of Ad Taylor answer:
myLabel.frame.integral
来源:https://stackoverflow.com/questions/13670181/how-can-i-remove-uilabels-gray-border-on-the-right-side