Don't do it with UIBezierPath, because it's slow.
A much faster way:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(context, 0.f, 0.f, 0.f, 1.f);
CGContextFillRect(context, [self bounds]);
Why not use UIView.backgroundColor?
freerunnering, because it might be changed by UIKit, for example, if a view is in UITableViewCell, and when that cell gets selected - UIKit will set all that's cell subviews' background color to cell selected color.