UiView with top left and right rounded corners and border

12,651

Solution 1

UIView With top left,right rounded corners and shadow

#import <QuartzCore/QuartzCore.h>
backView.layer.shadowColor=[UIColor blackColor].CGColor;

backView.layer.masksToBounds = NO;

backView.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);

backView.layer.shadowRadius = 3;

backView.layer.shadowOpacity = 0.8;

      CGFloat radius = 20.0;
    CGRect maskFrame = self.backView.bounds;
    maskFrame.size.height += radius;
    CALayer *maskLayer1 = [CALayer layer];
    maskLayer1.cornerRadius = radius;
    maskLayer1.backgroundColor = [UIColor blackColor].CGColor;
    maskLayer1.frame = maskFrame;
    self.backView.layer.mask = maskLayer1;

Solution 2

you can achieve this using beizer path like this -

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(5.0, 5.0)];

    [maskPath setLineWidth:1.0];
     //to give stroke color 
    [[UIColor colorWithRed:186.0/255.0 green:186.0/255.0 blue:186.0/255.0 alpha:1.0] setStroke];

    //to color your border
       [[UIColor colorWithRed:242.0/255.0 green:240.0/255.0 blue:240.0/255.0 alpha:1.0] setFill];       


    [maskPath fill];
    [maskPath stroke];
Share:
12,651
user1078065
Author by

user1078065

Updated on June 06, 2022

Comments

  • user1078065
    user1078065 almost 2 years

    I have a UIView. I need to make only it's top left and top right corners rounded and also to have a 1 point border width.

    Any idea?

    Thanks