Add the following to fix: -(void)layoutSubviews { // need to wait for autolayout to do its thing before setting up the masking image [self maskView:self]; }