OK, I get it now. One way I can think of is to build your view as you do now with square corners but don't add to the parent view yet. Then you can create a graphics context and setup a clipping region in the new context with round corners. Then you can draw your view into this context. Then extract an image from the context. Now you use this image to display to the user instead of the original view you created behind the scenes.
Here's code I used to convert an arbitrary view into an image. All you need to do is add the clipping code to create the rounded corners.
- (UIImage *)convertView:(UIView *)view {
UIGraphicsBeginImageContext(view.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Clear whole thing
CGContextClearRect(ctx, view.bounds);
// Add your code to create rounded rectangle clipping region
// Draw view into context
[view.layer renderInContext:ctx];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}