Here is some Core Graphics code I use to do the opposite (draw a partially transparent black overlay over the rest of the screen). But you could easily modify it to draw partially transparent white over a smaller area.
- (void)drawRect:(CGRect)rect
{
CGRect targetRect = [self convertRect:self.target.bounds fromView:self.target];
size_t num_locations = 3;
CGFloat locations[3] = { 0.0, 0.4, 1.0 };
CGFloat components[12] = { 0.0, 0.0, 0.0, 0.3,
0.0, 0.0, 0.0, 0.5,
0.0, 0.0, 0.0, 0.6 };
CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB();
CGGradientRef myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, num_locations);
CGContextRef context = UIGraphicsGetCurrentContext();
CGPoint centerPoint = CGPointMake(CGRectGetMidX(targetRect), CGRectGetMidY(targetRect));
CGFloat startRadius = 0;
CGFloat endRadius = 300;
CGContextDrawRadialGradient (context, myGradient, centerPoint,
startRadius, centerPoint, endRadius,
kCGGradientDrawsAfterEndLocation);
CGColorSpaceRelease(myColorspace);
CGGradientRelease(myGradient);
}