Is it possible to set rounded corners on an UIView
's layer and override -drawRect:
at the same time? Currently the -drawRect:
call seems to override the layer's rounded corners and make them appear angular again, even if the -drawRect:
just contains a call to the super's -drawRect:
.
Asked
Active
Viewed 3,963 times
7

John Topley
- 113,588
- 46
- 195
- 237
2 Answers
15
self.opaque = NO
didn't work for me. Setting self.layer.masksToBounds = YES
did work, however (tested on iOS 4.3):
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if( self )
{
self.layer.cornerRadius = 6.0f;
self.layer.masksToBounds = YES;
}
return self;
}

dvs
- 12,324
- 6
- 38
- 45
-
Same here. `self.opaque = NO` didn't do it, but `masksToBounds = YES` does. – mahboudz Apr 27 '12 at 09:35
3
Set the opaque property to NO. You will get your rounded corners back.
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if(self)
{
self.layer.cornerRadius = KCORNERRAD;
self.opaque = NO;
}
return self;
}

Warren Burton
- 17,451
- 3
- 53
- 73